使用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 相关文章推荐
用php过滤危险html代码的函数
Jul 22 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
基于flush()不能按顺序输出时的解决办法
Jun 29 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
php生成短域名函数
Mar 23 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
PHP实现微信发红包程序
Aug 24 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
PHP实现的简单路由和类自动加载功能
Mar 13 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 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之数组学习
2011/05/29 PHP
php数组编码转换示例详解
2014/03/11 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
python批量下载图片的三种方法
2013/04/22 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
python简单获取数组元素个数的方法
2015/07/13 Python
Python利用ansible分发处理任务
2015/08/04 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
北大自主招生自荐信
2013/10/19 职场文书
年会活动策划方案
2014/01/23 职场文书
学生周末长期请假条
2014/02/15 职场文书
旷工检讨书1000字
2015/01/01 职场文书
广播体操比赛主持词
2015/06/29 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
pandas 操作 Excel操作总结
2021/03/31 Python