编辑:我不知道这是否是一回事,但是当我进行了大量测试并且运行了许多python脚本时,通常会发生这种情况。通常没有一个人同时活动,但是我会在很短的时间内运行其中的几个。我不知道这就是为什么错误开始发生的原因。
好,这是我的难题。 我有一个NordVPN帐户,我想通过ip循环访问我向Google提出的请求。有时效果很好。由于某些原因,在几次请求ping之后,我的程序开始变慢,然后开始出现“ Max Connection Exceeded”错误,据我所知IP正常。
我开始认为google阻止了ip,但随后我向其他网站发出请求,并且同样的错误继续存在。.我开始认为代理服务器可能只在特定时间内允许一定数量的请求,因此我尝试了一些免费代理,但我再次遇到相同的错误。 无论哪种方式,如果我将其搁置一会儿似乎都可以正常工作,然后再执行数十次ping操作,然后错误再次出现。
我能想到的唯一想法是,我不确定该如何测试,甚至不确定是否可以进行远程测试(工作路由器),也许某些开放连接保持打开状态并影响我的代码,然后当开放连接积压时扔出去我可以恢复正常。我开始寻找获取请求后是否需要“关闭”我的连接,但这似乎没有必要(尽管我什至不确定自己在寻找什么)。
这是我的代码的一个版本,我尝试了不使用会话,但是尝试了另一种编写会话的方式。所有人似乎都以相同的方式工作:
import requests, random
username = 'xxx'
password = 'yyy'
with open('proxies.txt', 'r') as p:
proxy_lost = p.read().splitlines()
with open('data.txt', 'r') as d:
data = d.read().splitlines()
for i in data:
result = None
while result is None:
try:
proxy = proxy_list[random.randint(0,len(proxy_list)-1)] + '.nordvpn.com'
prox = 'socks5://{}:{}@{}:{}'.format(username, password, proxy, 1080) #I've also tried socks5h
with requests.Session() as r:
r.proxies['http': prox]
r.proxies['https': prox]
result = r.get('http://icanhazip.com')
print(result.text.strip())
如果任何人有任何想法,将不胜感激。我已经想尽办法尝试新想法了。
这是我在整个过程中遇到的错误之一的示例:
回溯(最近通话最近):文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, 线路809,在连接中 协商(自己,dest_addr,dest_port)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, _negotiate_SOCKS5中的第444行 自我,CONNECT,dest_addr)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, _SOCKS5_request中的第503行 引发SOCKS5AuthError(“ SOCKS5身份验证失败”)袜子。SOCKS5AuthError:SOCKS5身份验证失败
在处理上述异常期间,发生了另一个异常:
回溯(最近通话最近):文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ contrib \ socks.py”, _new_conn中的第88行 ** extra_kw文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, 第209行,在create_connection中 引发错误文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, 第199行,位于create_connection中 sock.connect((remote_host,remote_port))文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, 包装中的第47行 返回函数(* args,** kwargs)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py”, 连接线814 引发GeneralProxyError(“ Socket error”,error)袜子。GeneralProxyError:套接字错误:SOCKS5身份验证失败
在处理上述异常期间,发生了另一个异常:
回溯(最近通话最近):文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connectionpool.py”, 第600行,在urlopen中 chunked = chunked)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connectionpool.py”, _make_request中的第354行 conn.request(方法,URL,** httplib_request_kw)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”, 第1244行,应要求 self._send_request(方法,URL,正文,标头,encode_chunked)文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”, _send_request中的第1290行 self.endheaders(正文,encode_chunked = encode_chunked)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”, 1239行,在标题中 self._send_output(消息主体,encode_chunked = encode_chunked)文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”, _send_output中的第1026行 self.send(msg)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”, 发送中的966行 self.connect()文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connection.py”, 连接线181 conn = self._new_conn()文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ contrib \ socks.py”, _new_conn中的第110行 “无法建立新连接:%s”%错误urllib3.exceptions.NewConnectionError: : 建立新连接失败:SOCKS5身份验证失败
在处理上述异常期间,发生了另一个异常:
回溯(最近通话最近):文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ requests \ adapters.py”, 发送中的第449行 timeout =超时文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connectionpool.py”, 第638行,在urlopen中 _stacktrace = sys.exc_info()[2])文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ util \ retry.py”, 第399行,递增 引发MaxRetryError(_pool,url,error或ResponseError(cause))urllib3.exceptions.MaxRetryError: SOCKSHTTPConnectionPool(host ='icanhazip.com',port = 80):最多重试 网址超出了:/(由 NewConnectionError(':无法建立新连接:SOCKS5 身份验证失败'))
在处理上述异常期间,发生了另一个异常:
回溯(最近通话最近):文件 “ C:\ Users * \ Documents_Scripts \ Find Proxies \ FindProxies.py“,第23行,在 结果= request.get('http://icanhazip.com',proxies = proxies)文件 “ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ requests \ api.py”, 第75行,进入 返回请求(“ get”,URL,params = params,** kwargs)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ requests \ api.py”, 60行,应要求 返回session.request(方法=方法,URL = URL,** kwargs)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ requests \ sessions.py”, 533行,在请求中 resp = self.send(prep,** send_kwargs)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ requests \ sessions.py”, 发送中的第646行 r = adapter.send(请求,** kwargs)文件“ C:\ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ requests \ adapters.py”, 发送中的第516行 引发ConnectionError(e,request = request)requests.exceptions.ConnectionError: SOCKSHTTPConnectionPool(host ='icanhazip.com',port = 80):最多重试 网址超出了:/(由 NewConnectionError(':无法建立新连接:SOCKS5 身份验证失败'))
答案 0 :(得分:0)
使用后,您还会再次关闭会话吗?
尝试:
r = requests.session(config={'keep_alive': False})