问题描述
我在爬虫的时候,有时候会碰到这个问题,明明status是ok的,但是返回的结果却是不完整的。特别是碰到爬取下一页链接的时候,常常就因为这个问题导致后面几页的网页不能跟进,损失了很多数据。求大神赐教啊~~~
解决方案
解决方案二:
200跟contentlength没有关系。你如果看到contentlength比你收到的body的字节数多很多,这才算是“不完整”。
解决方案三:
另外,就算是contentlength比你收到的body中的字节数多很多,服务器端对于本次连接“关闭了”,那么状态200也是对的。规范就是如此,200就是这个意思。它跟你收到的消息体中你逻辑上判断的“是否完整”性是没有关系的。
解决方案四:
200只是代表Http请求是正确的响应了,然后你所谓的结果不完整是什么意思,是跟打开后浏览到的不一样?那这要看是不是load后有js加载数据
解决方案五:
你先用httpfiddler抓包跟一下rquest和response
解决方案六:
谢谢!应该没有js加载数据。不好意思,我这里没有说明白,我说的不完整主要是下面两点:1.responsebody里面几乎没有内容2.我用xpath提取response里的数据时,有时候会报'Response'objecthasnoattribute'xpath'这个错上面两个问题并不是一直出现的,时有时无。我用了一批网上的代理ip,不是太稳定,可能跟这个有关。但是一般有问题会都抛错,这种statusok的我就不知道怎么处理了
解决方案七:
引用3楼starfd的回复:
200只是代表Http请求是正确的响应了,然后你所谓的结果不完整是什么意思,是跟打开后浏览到的不一样?那这要看是不是load后有js加载数据
我查看了一下body,说是Yourbrowsedoesnotsupportframe我用了下面这些useragent,看不出问题在哪里。。。"Mozilla/5.0(X11;Linuxi686)AppleWebKit/537.31(KHTML,likeGecko)Chrome/26.0.1410.43Safari/537.31","Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.17(KHTML,likeGecko)Chrome/24.0.1312.60Safari/537.17","Mozilla/5.0(Macintosh;IntelMacOSX10_8_2)AppleWebKit/537.17(KHTML,likeGecko)Chrome/24.0.1309.0Safari/537.17","Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.2;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0)","Mozilla/5.0(Windows;U;MSIE7.0;WindowsNT6.0;en-US)","Mozilla/5.0(Windows;U;MSIE6.0;WindowsNT5.1;SV1;.NETCLR2.0.50727)","Mozilla/6.0(WindowsNT6.2;WOW64;rv:16.0.1)Gecko/20121011Firefox/16.0.1","Mozilla/5.0(X11;Ubuntu;Linuxi686;rv:15.0)Gecko/20100101Firefox/15.0.1'","Mozilla/5.0(WindowsNT6.2;WOW64;rv:15.0)Gecko/20120910144328Firefox/15.0.2","Mozilla/5.0(Windows;U;WindowsNT6.1;rv:2.2)Gecko/20110201","Mozilla/5.0(X11;U;Linuxi686;en-US;rv:1.9a3pre)Gecko/20070330","Mozilla/5.0(Macintosh;U;IntelMacOSX10.6;en-US;rv:1.9.2.13;)Gecko/20101203","Opera/9.80(WindowsNT6.0)Presto/2.12.388Version/12.14","Opera/9.80(X11;Linuxx86_64;U;fr)Presto/2.9.168Version/11.50","Opera/9.80(Macintosh;IntelMacOSX10.6.8;U;de)Presto/2.9.168Version/11.52","Mozilla/5.0(Windows;U;Win9x4.90;SG;rv:1.9.2.4)Gecko/20101104Netscape/9.1.0285","Mozilla/5.0(Macintosh;U;PPCMacOSXMach-O;en-US;rv:1.8.1.7pre)Gecko/20070815Firefox/2.0.0.6Navigator/9.0b3","Mozilla/5.0(X11;U;Linuxi686;en-US;rv:1.8.1.12)Gecko/20080219Firefox/2.0.0.12Navigator/9.0.0.6",
解决方案八:
我正在爬http://news.sohu.com/scroll/这个网页,不知道为什么这个网页在scrapyshell调试时viewrepsonse出来的是空白网页,所以我的所有xpath都匹配不出内容!和浏览器看到的不一样!我想是不是跟你遇到的问题一样?请问你有答案了么?
解决方案九:
换个useragent试试;
解决方案十:
楼主你没见过网页开了一半卡住了吗?