本站停止维护,已转移至laravel学习网;欢迎大家移步访问!

解决python爬虫爬取网页出现 IncompleteRead(0 bytes read))

遇到这样的问题,可能是chunked编码不完整导致的。下面是解决办法:

一.python2中我们这样解决,我在我的情况发现:发送HTTP / 1.0请求,添加如下代码,解决问题。

import httplib

httplib.HTTPConnection._http_vsn = 10

httplib.HTTPConnection._http_vsn_str = 'HTTP/1.0'

在我的要求去做:

req = urllib2.Request(url, post, headers)

filedescriptor = urllib2.urlopen(req)

img = filedescriptor.read()

之后,我返回到http 1.1(适用于支持1.1的连接):

httplib.HTTPConnection._http_vsn = 11

httplib.HTTPConnection._http_vsn_str = 'HTTP/1.1'

诀窍是使用HTTP 1.0而不是默认的HTTP / 1.1 HTTP 1.1可以处理块,但由于某种原因,网络服务器不这样做,所以我们在做HTTP 1.0请求

二, Python3中

conn = http.client.HTTPConnection('www.google.com')
conn.request('GET', '/')
r1 = conn.getresponse()
page = r1.read().decode('utf-8')

这样每次都能解决问题,而用urllib每次是返回一个例外的incompleteread。


转载请注明 :一沙网络原文出处:http://bbs.earnp.com/article/256
问题交流群 :562864481
3
打赏
发布时间 :2016-11-30 20:48:50
分享

0 个评论

    还没有评论,感觉来抢沙发吧!

要回复文章请先登录注册