scrapy爬虫时HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法

问题1:爬虫屡次访问同一个网站一段时间后会出现错误 HTTPConnectionPool(host:XX)Max retries exceeded with url '<requests.packages.urllib3.connection.HTTPConnection object at XXXX>: Failed to establish a new connection: [Errno 99] Cannot assign requested address'
缘由:是由于在每次数据传输前客户端要和服务器创建TCP链接,为节省传输消耗,默认为keep-alive,即链接一次,传输屡次,然而在屡次访问后不能结束并回到链接池中,致使不能产生新的链接
解决:headers中的Connection默认为keep-alive,将header中的Connection一项置为close服务器

headers = {
    'Connection': 'close',
}
r = requests.get(url, data=formdata, headers=headers)oop

参考:https://blog.csdn.net/ZTCooper/article/details/80220063 学习

问题2:爬虫屡次访问同一个网站一段时间后会出现错误 HTTPConnectionPool:read time out网站

缘由:具体缘由还不清楚,若是有人看到而且了解缘由,但愿能够留言互相学习。url

解决:把原来 requests.get(url, data=formdata, headers=headers, timeout=0.2)中的timeout改成0.3.net

相关文章
相关标签/搜索