PHP curl实现抓取302跳转后页面的示例


Posted in PHP onJuly 04, 2014

PHP的CURL正常抓取页面程序如下:

$url = 'http://www.baidu.com';

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$ret = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch);

如果你抓取到的是302状态,是因为再抓取的过程中,有的跳转需要给下一个链接传递参数,而下一个链接同时也设置了如果没接收到相应的参数是为非法访问。

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');

显示就应该正常了。

上面用来抓取功能,几乎应该没问题的。你可以查一下CURLOPT_CUSTOMREQUEST相关资料。

使用一个自定义的请求信息来代替”GET”或”HEAD”作为HTTP请求。这对于执行”DELETE” 或者其他更隐蔽的HTTP请求。有效值如”GET”,”POST”,”CONNECT”等等。也就是说,不要在这里输入整个HTTP请求。例如输入”GET /index.html HTTP/1.0\r\n\r\n”是不正确的。

PHP 相关文章推荐
php操作sqlserver关于时间日期读取的小小见解
Nov 29 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
php禁止某ip或ip地址段访问的方法
Feb 25 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
PHP文件操作详解
Dec 30 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
基于PHP的登录和注册的功能的实现
Aug 06 PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 #PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 #PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 #PHP
php+memcache实现的网站在线人数统计代码
Jul 04 #PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 #PHP
CodeIgniter安全相关设置汇总
Jul 03 #PHP
php使用pack处理二进制文件的方法
Jul 03 #PHP
You might like
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
PHP实现的oracle分页函数实例
2016/01/25 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
PHP children()函数讲解
2019/02/03 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
javascript window对象属性整理
2009/10/24 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
layui使用label标签的方法
2019/09/14 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
Python自定义线程类简单示例
2018/03/23 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
python requests post多层字典的方法
2018/12/27 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
GWebs公司笔试题
2012/05/04 面试题
项目开发计划书
2014/01/09 职场文书
京剧自荐信
2014/01/26 职场文书
妇女工作先进事迹
2014/08/17 职场文书
小学校长汇报材料
2014/08/20 职场文书
办理收楼委托书范本
2014/10/09 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
导游词之包公祠
2019/11/25 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android