Max retries exceeded with url

Max retries exceeded with url

error1:NewConnectionError(’<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000038F2B00>: Failed to establish a new connection:[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。’,))解决办法:session.keep_alive=Falseerror2:python hostname doesn’t match either of facebookXXXXX解决办法:

转载 : 简书链接

1、多方查阅后发现了解决问题的原因:http连接太多没有关闭导致的。
解决办法:1、增加重试连接次数
requests.adapters.DEFAULT_RETRIES = 5

2、关闭多余的连接
requests使用了urllib3库,默认的http connection是keep-alive的,requests设置False关闭。

requests.post(“http://…”, headers={‘Connection’:‘close’})
或者
s = requests.session()
s.keep_alive =False

3、只用session进行操作。即只创建一个连接,并设置最大连接数或者重试次数。

import requests 
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
session.get(url)

import  requests  
from  requests.adapters  import  HTTPAdapter
from  requests.packages.urllib3.util.retry  import  Retry 
 s = requests.Session() 
 retry = Retry(connect =5, backoff_factor =1) 
 adapter = HTTPAdapter(max_retries = retry) 
 s.mount('http://', adapter) 
 s.keep_alive =False
res = s.post(self.conn.host +'/sign-in', data = json.dumps({'name':"XXX",'pwd':"XXX"})) 
 response = res.json()

但是在starkoverflow上有人给出了这样的解释。

4.安装 py
pip install -U pyopenssl

5、设定固定的睡眠时间在发送请求之间https://github.com/requests/requests/issues/4246#eventhttps://stackoverflow.com/questions/23013220/max-retries-exceeded-with-url
在爬取boss直聘时出现这种错误,总结如下: 1.http连接太多没有关闭导致的,解决方法:

import requests
requests.adapters.DEFAULT_RETRIES =5    # 增加重连次数
s = requests.session()
s.keep_alive = False   # 关闭多余连接
s.get(url)# 你需要的网址

2.访问次数频繁,被禁止访问,解决方法:使用代理

import requests
s = requests.session()
url ="https://mail.163.com/"
s.proxies= {"https":"47.100.104.247:8080","http":"36.248.10.47:8080", }
s.headers= header
s.get(url)

使用代理时需注意:1.代理分为http和https两种,不能用混,如果把http的代理用作https也是会报上面的错误;2.上面的代理以字典格式传入,
例如上面的例子,是“47.100.104.247:8080”这种格式,也可以是“https://47.100.104.247:8080”这种格式;3.如果代理不可用一样会报上面的错误。以下方法判断代理是否可用:

import requests
s = requests.session()
url ="https://mail.163.com/"
s.keep_alive = False
s.proxies= {"https":"47.100.104.247:8080","http":"36.248.10.47:8080", }
s.headers= header
r = s.get(url)
print(r.status_code)    # 如果代理可用则正常访问,不可用报以上错误

升级
pip install --upgrade requests

如果同一ip访问次数过多也会封ip,这里就要用代理了proxies,python很简单,直接在请求中带上proxies参数就行,

r = requests.get(url, headers=headers,cookies=cookies,proxies = proxies)

下半部分

ProxyError: HTTPSConnectionPool(host=‘xingyun.map.qq.com’, port=443): Max retries exceeded with url: /api/getXingyunPoints (Caused by ProxyError(‘Cannot connect to proxy.’, NewConnectionError(’<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x000001F8DDC68278>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。’,)))

一开始还以为是封了ip啥的,然后就去测试其他的爬虫,爬其他网站看看,结果发现所有网站都是这样,都无法爬虫,那说明不是封IP的问题。

解决这个问题有很多种方法:
一:time.sleep() 因为错误提示里提到了访问过于频繁,超过最大尝试次数,所以每次爬完之后要让程序停一段时间,这种方法可以尝试。

二:ProxyError的意思是代理错误,一般来说只有翻墙才会用到代理,可能是你某个软件让电脑每次都默认打开了代理,所以你只需要把代理关闭即可。

在这里插入图片描述

三、是网络不稳定造成的,这时候你重启下或者换一个网络环境就好了,比如把宽带连接改为手机热点连接,一般问题即可解决。

四:以上都不行的话再打开你的浏览器设置,如下操作。

在这里插入图片描述

一般来说,经过这四个步骤,问题即可解决。

当然还有一张情况是:

urllib.error.URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,无法连接。>
因为之前用过fiddler,今天运行程序时没有打开fiddler,所以配置的代理失效了,返回这样的错误。这个问题是因为代理设置失效,换一个代理或者取消设置代理即可。

原文:https://blog.csdn.net/qq_32231883/article/details/88962790

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
错误"Max retries exceeded with url"表示在尝试多次连接一个URL后,仍然无法建立成功的连接。这种错误可能有多种原因。一种可能是传递给request.get()方法的URL不正确或不完整。另一种可能是受到API的速率限制,超过了允许的连接次数。还可能是requests模块无法验证目标网站的SSL证书。 要解决这个错误,首先要确保在调用request.get()时传递正确且完整的URL。此外,还要确保不受API的速率限制,可以通过调整请求的频率来避免超过限制。如果requests模块无法验证目标网站的SSL证书,可以尝试使用其他方法来验证证书或绕过验证。最后,还可以检查网络连接是否正常,确保可以访问互联网。 如果出现类似"ConnectionError: HTTPConnectionPool(host='xxx.xx.xxx.xxx', port=xxxx): Max retries exceeded with url: /api/v1/login/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7c98a867d0>: Failed to establish a new connection: [Errno 111] Connection refused',))"的错误提示,说明请求过于频繁。一种解决方法是使用sleep方法来减缓请求的频率。另一种解决方法是关闭多余的连接,可以使用以下代码来关闭多余的连接: s = requests.session() s.keep_alive = False 综上所述,当出现"Max retries exceeded with url"错误时,可以通过确保传递正确的URL、避免API速率限制、验证SSL证书、检查网络连接等方法来解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python 中错误 ConnectionError: Max retries exceeded with url](https://blog.csdn.net/fengqianlang/article/details/129368257)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [解决“Max retries exceeded with url问题](https://blog.csdn.net/buki26/article/details/85004675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值