requests库的Failed to establish a new connection
文章目录
使用python做爬虫的过程中,经常会在较短的时间内构建大量的连接向服务器请求数据,遇到了这样的问题:
|
|
最开始看到Max retries exceeded with url
还以为是请求过于频繁,自己的ip地址被ban了,而后又通过requests库手动发出一条请求,并没有上边的错误,看来并不是ip被ban。
又看到Temporary failure in name resolution
,会不会是域名解析的问题?也不会,单独一条请求是可以正常返回结果的,拿到底是怎么回事?
经过一番google,stackoverflow之后看到了这几个答案:
结合自己出现问题的场景,应该就是因为在短时间内打开了太多的http连接,并且这些连接都是默认keep-alive的形式。
所以在request的header中添加了'Connection': close
,并且在每个请求完成之后time.sleep(0.01)。
修改之后,爬虫跑了一夜没再出问题,开心。
文章作者 rgozi
上次更新 2017-01-29