PHPSpider结合Fiddler查询HTTP CODE代码错误原因
来源:互联网 发布:matlab怎么用数据画图 编辑:程序博客网 时间:2024/06/16 06:00
这几天在研究使用PHPSpider,依照作者的Demo做了几个case,在爬取某微信公众号导航网站,收集微信公众号内容时,遇到一个这样的错误,就是爬出1619条网页后,会收到服务器返回HTTP CODE 400 bad request错误,phpspider框架给出了错误代码,但是却找不到问题原因所在。
通过设置PHPSPIDER requests类的init方法里面的curl配置,将curl_setopt(self::$ch, CURLOPT_PROXY,'127.0.0.1:8888');代理IP地址设置为本机,通过fiddler抓取获取的网页错误信息,发现在请求1620网页时,返回400错误,打开抓取的网页返回信息,显示请求的header头超过了允许值,仔细研究phpspider requests类库,发现每一次请求网页时,requests都会读取当前域名下的cookies,而抓取的网站,每一次访问一个网页都会产生一个cookie,这样本域名下的cookie数量一直在增大,到1620页面时cookies撑爆了header头导致服务器无法理解请求,所以返回了400。
在configs中未设置cookie时,requests类库在get_url时,自动发送网站自动产生的cookies。在访问网页时,网站因为不同网页都产生cookie时,要注意。
在configs中list_url_regexes/content_url_regexes中设置正则时要注意,尽量不要保留后面的“,”,更不能设置为"",否则将匹配所有。
在is_find_url为TRUE时,scan_page上发现url,设置将符合list_url_regexes/content_url_regexes的链接添加到待爬取队列。
if(($this->is_list_page($val))||($this->is_content_page($val)))
{
if($this->is_list_page($val))
{
var_dump(self::$configs['list_url_regexes']);
log::info("print list-url-regexes");
}
if($this->is_content_page($val))
{
var_dump(self::$configs['content_url_regexes']);
log::info("print content-url-regexes...");
}
$urls[$k] = $val;
log::info('find-url: '.$val);
}else
- PHPSpider结合Fiddler查询HTTP CODE代码错误原因
- 结合fiddler细致了解http协议
- 常见的HTTP代码错误原因及处理
- 【HTTP】Fiddler
- HTTP 状态代码及其原因
- HTTP错误码集合,及错误原因
- HTTP错误的代码
- HTTP 状态消息、code状态码查询
- http code状态码,错误码
- 常见的 HTTP Status Code错误
- 网站无法访问http错误种类及原因
- http 报错码对应的错误原因
- upupw结合Fiddler使用,Apache的httpd-vhosts配置错误处理
- mysql查询错误原因+PHP复选框
- 常用的 Http Response Code代码(转)
- 常用的 Http Response Code代码
- 常用的 Http Response Code代码
- 常用的 Http Response Code代码
- 解决Win和ubuntu双系统时间不对的问题
- Mac下手动创建指定容量测试文件(空白文件)
- CSS的三级菜单
- netty新建连接并发数很小的case
- 菜单变色
- PHPSpider结合Fiddler查询HTTP CODE代码错误原因
- Reorder List
- 小鑫数数儿
- 小鑫の日常系列故事(五)——卡片游戏
- 【t009】最大矩形面积
- Servlet类详解
- 区间之和
- C语言实验——分割整数
- vmware workstation虚拟机网络配置