使用PHP curl模拟浏览器抓取网站信息


Posted in PHP onOctober 28, 2013

官方解释
curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。
它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,
上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

curl讲解一

PHP中curl函数应用
简单的来说一共四步
curl_init();
curl_setopt();
curl_exec();
curl_close();

最重要的命令就是 curl_setopt();

一个简单的post请求例子
index.php

<?php
$url = "http://www.mytest.com/curl/login.php";  //请求的url地址
$user = "zkg111"; //用户名
$pass = "123456"; 
$postdata = "user_name=".$user."&password=".$pass;  //请求的数据,以 & 符号分割
$curl = curl_init(); //开启curl
curl_setopt($curl, CURLOPT_URL, $url); //设置请求地址
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  //是否输出 1 or true 是不输出 0  or false输出
curl_setopt($curl, CURLOPT_POST, 1); //是否使用post方法请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);  //post数据 
echo $data = curl_exec($curl); //执行curl操作
curl_close($curl);
?>

 下面一个简单的例子,我随便打开了兄弟连的论坛,接着就模拟了一下兄弟连论坛的登陆,如果需要发帖的话原理都是一样的,转接页面,提交数据
特别注意的是cookie的保存目录 windows7下面必须是在./temp目录下,开始我自己创建了一个新文件夹,发现存是对的,但是cookie读取的时候不对,为此还在好多地方
提问,但是没有回答对的,折腾了好几天该了保存文件为./temp目录下才可以的,提醒别的朋友别和我一样瞎转
<?php
$url = "http://bbs.lampbrother.net/login.php";
$urls = "http://bbs.lampbrother.net";
$lgt = 0;
$user = "XXXX";
$pass = "XXXX";
$question = 0;
$hideid = 1;
 $cookie_file    =    tempnam('./temp','cookie');
 $postdata = "forward=&jumpurl=".$urls."&step=2&lgt=".$lgt."&pwuser=".$user."&pwpwd=".$pass."&question=".$question."&answer=&hideid=".$hideid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 $data = curl_exec($ch);
curl_close($ch);
 //echo $data;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://bbs.lampbrother.net/');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_exec($ch);
curl_close($ch);
?>
PHP 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
整理的9个实用的PHP库简介和下载
Nov 09 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
php实现每日签到功能
Nov 29 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
php header功能的使用
Oct 28 #PHP
简单实用的.net DataTable导出Execl
Oct 28 #PHP
php json与xml序列化/反序列化
Oct 28 #PHP
php中的boolean(布尔)类型详解
Oct 28 #PHP
php中的比较运算符详解
Oct 28 #PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 #PHP
析构函数与php的垃圾回收机制详解
Oct 28 #PHP
You might like
PHP的博客ping服务代码
2012/02/04 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
python 动态加载的实现方法
2017/12/22 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
python 获取字符串MD5值方法
2018/05/29 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python 为什么说eval要慎用
2019/03/26 Python
Django操作session 的方法
2020/03/09 Python
Python实现汇率转换操作
2020/05/03 Python
python实例化对象的具体方法
2020/06/17 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
应聘医药销售自荐书范文
2014/02/08 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
疾病捐款倡议书
2014/05/13 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers