Max|Max retries exceeded with url 错误
Max retries exceeded with url
今天在写一个脚本的时候老是出现这个错误,各种头都加了还是没效果。
headers = {结果请教大牛,仅有提示
'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6',
"Host:":"192.168.1.1",
"Connection":"keep-alive",
"Accept-Encoding":"identity",
"Accept":"text/html,application/xhtml+xml,application/xml; q=0.9,image/webp,*/*; q=0.8"}
http://panyongzheng.iteye.com/blog/1952538
因为我用的是python,而且用的是requests模块,所以就按照其中第一个方式进行添加,但是却不能成功。
无聊中想到升级,不小心就搞定了,原来是requests模块太老,不支持。
requests.adapters.DEFAULT_RETRIES = 5升级后就好了
pip install --upgrade requests【Max|Max retries exceeded with url 错误】估计知乎对这些url的访问做了限制,虽然我弄了代理,但还是碰到了这个问题。
解决办法如下:
在requests库获取html时,如果碰到访问不成功,则用try-except加上循环继续访问,并用sleep控制访问频率
html = ""问题到这里应该就解决了。
while html == "":#因为请求可能被知乎拒绝,采用循环+sleep的方式重复发送,但保持频率不太高
try:
proxies = get_random_ip(ipList)
print("这次试用ip:{}".format(proxies))
r = requests.request("GET", url, headers=headers, params=querystring, proxies=proxies)
r.encoding = 'utf-8'
html = r.text
return html
except:
print("Connection refused by the server..")
print("Let me sleep for 5 seconds")
print("ZZzzzz...")
sleep(5)
print("Was a nice sleep, now let me continue...")
continue
参考:Max retries exceed with URL (需要翻墙)
爬虫多次访问同一个网站一段时间后会出现错误 HTTPConnectionPool(host:XX)Max retries exceeded with url '
是因为在每次数据传输前客户端要和服务器建立TCP连接,为节省传输消耗,默认为keep-alive,即连接一次,传输多次,然而在多次访问后不能结束并回到连接池中,导致不能产生新的连接
headers中的Connection默认为keep-alive,
将header中的Connection一项置为close
headers = { 'Connection': 'close',}此时问题解决
r = requests.get(url, headers=headers)
推荐阅读
- 051:指针练习(MyMax)
- numpy中np.nanmax和np.max的区别及坑
- 我们真的读懂鸡汤文了吗()
- softmax损失函数-交叉熵
- 【leetcode】数组
- Max|Max retries exceeded with URL错误解决方法
- 原创|通俗易懂!详解Softmax及求导过程、Python实现、交叉熵
- G-max第二期练习生打造计划圆满落幕,致逆流而上的你们
- 为什么不带参数的|为什么不带参数的 Math.max() 返回-Infinity
- 英特尔最强芯片 Alder Lake Core i9 与苹果 M1 Max 跑分结果出炉!