摘要:
http连接数超过了最大限制。默认情况下,连接是保持活动的,因此服务器保持太多的连接以至于无法创建新的连接。请求速度太快。
在爬虫中报如下的错误:
requests.exceptions.ConnectionError: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’,))
发现该错误是因为如下:
- http的连接数超过最大限制,默认的情况下连接是Keep-alive的,所以这就导致了服务器保持了太多连接而不能再新建连接。
- ip被封
- 程序请求速度过快。
解决办法
方法一
try:
page1 = requests.get(ap)
except requests.exceptions.ConnectionError:
r.status_code = "Connection refused"
方法二
request的连接数过多而导致Max retries exceeded
在header中不使用持久连接
'Connection': 'close'
或
requests.adapters.DEFAULT_RETRIES = 5
方法三
随机切换User-Agent
user_agent_list = ["Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)", "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15", ] headers['User-Agent'] = random.choice(user_agent_list)
访问频率的设置
time.sleep(6)
#测试一下,如果是与访问频率有关可设置时间长一点
使用代理ip
self.proxies = { "http": ip, "https":ip, }
本文来源:【python爬虫 关于requests.exceptions.ConnectionError 等问题】
由思享SEO博客编辑转载,仅用于参考学习,如有侵权请联系本站修改删除!