分析原因,是因为使用urlopen方法太过频繁,引起远程主机的怀疑,被网站认定为是攻击行为。导致urlopen()后,request.read()一直卡死在那里。最后抛出10054异常。
1. 在request后面写入一个关闭的操作,
response.close()
2. 设置socket默认的等待时间,在read超时后能自动往下继续跑
socket.setdefaulttimeout(t_default)
3. 设置sleep()等待一段时间后继续下面的操作
time.sleep(t)
设置之后,爬取成功,没有报错
网友评论