我一直在尝试使用Python的请求包来下载以下URL:
在Chrome中,证书似乎有效:
但是,在Python中,SSLV3_ALERT_HANDSHAKE_FAILURE即使使用verify忽略错误证书的标志,请求也会失败:
如果将verify设置为False,请求也可以忽略验证SSL证书
>>> requests.__version__
'2.7.0'
>>> LOGIN_URL = 'https://service.isracard.co.il/I_logon.jsp'
>>> requests.get(LOGIN_URL, verify=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/private/tmp/sslenv/lib/python2.7/site-packages/requests/api.py", line 69, in get
return request('get', url, params=params, **kwargs)
File "/private/tmp/sslenv/lib/python2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/private/tmp/sslenv/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
resp = self.send(prep, **send_kwargs)
File "/private/tmp/sslenv/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/private/tmp/sslenv/lib/python2.7/site-packages/requests/adapters.py", …Run Code Online (Sandbox Code Playgroud) 不要问如何,但我解析了 5000 多个 NordVPN 服务器的服务器端点。例如,它们通常类似于 ar15.nordvpn.com。我正在尝试使用 NordVPN 服务器作为请求代理。我知道这是可能的,因为 Nordvpn 有一个教程,在使用端口 80 的浏览器中以相同的方式设置它。 Nordvpn 只允许同时有 6 个并发连接。我的问题是,我所做的是针对每个服务器,我将使用该 VPN 代理发送请求。请求发送后就完成了。但由于某种原因,即使在请求完成后,VPN 连接仍然以某种方式连接,因为在第 6 个请求之后它失败了。我知道 NordVPN 一次只允许 6 个连接,但这是一个接一个的连接。最奇怪的部分是,在我重新启动脚本后,它们立即再次执行(直到到达第 6 个请求)。因此,它不是 NordVPN 速率限制,而是以某种方式请求保持已建立的连接。
到目前为止我尝试过询问 r/learnpython。他们毫无用处。python 的不和谐让我走得很远,但从未最终解决问题。我已在请求标头中指定要关闭的连接,甚至使用了请求会话、这些会话的 with 语法,并手动关闭会话,尽管with应该注意这一点。禁用流也不会执行任何操作。
prox = [imagine a long list of nordvpn servers]
def printip():
# proxy auth according to request docs
prox = {
'https': 'https://myemail@gmail.com:password123@{}:80/'.format(i)
}
try:
with requests.Session() as s:
s.headers['Connection'] = 'close'
r = s.get('https://api.myip.com', proxies=prox, stream=False)
print(r.json()['ip'])
s.close()
except Exception as x:
print('bruh') …Run Code Online (Sandbox Code Playgroud)