Python 请求连接到被阻止的服务器

时间:2021-02-12 07:06:16

标签: python python-3.x vpn

我想连接到一个被阻止的 URL,使用 python requests

我使用了许多不同的代理服务器,但没有一个对我有用。 https://free-proxy-list.net/

import requests

x = '46.21.153.16:3128'
http_proxy  = "http://"+x
https_proxy = "https://"+x

proxyDict = {
  "http": http_proxy,
  "https": https_proxy
}


a = requests.get('https://example.com', proxies=proxyDict)
print(a.status_code)
<块引用>

回溯(最近一次调用最后一次):文件“t.py”,第 14 行,在 a = requests.get('https://my-url', proxies=proxyDict) 文件“/home/user/Documents/backend1/venv-livedx/lib/python3.5/site-packages/requests/api.py ”, 第 75 行,在 get return request('get', url, params=params, **kwargs) 文件“/home/user/Documents/livedx/backend1/venv-livedx/lib/python3.5/site-packages/requests/api.py” , 第 60 行,请求中 返回 session.request(method=method, url=url, **kwargs) 文件“/home/user/Documents/backend1/venv-livedx/lib/python3.5/site-packages/requests/sessions.py”, 第 533 行,请求中 resp = self.send(prep, **send_kwargs) 文件“/home/user/Documents/backend1/venv-livedx/lib/python3.5/site-packages/requests/sessions.py”, 第 646 行,发送 r = adapter.send(request, **kwargs) 文件“/home/user/Documents/backend1/venv-livedx/lib/python3.5/site-packages/requests/adapters.py”, 第 510 行,发送 引发 ProxyError(e, request=request) requests.exceptions.ProxyError: HTTPSConnectionPool(host='my-url', 端口 = 443):超过最大重试次数,网址为:/management(由 ProxyError('无法连接到代理。', OSError('隧道连接 失败:403 Forbidden',)))

2 个答案:

答案 0 :(得分:2)

流行的网络防火墙阻止流行的用户代理,将它们视为机器人。

复制您的浏览器代理,然后尝试根据请求更改用户代理。我敢打赌请求使用它自己的默认用户代理或 python urllib 之一。

示例:

a = requests.get('https://example.com', headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.152 Safari/537.36'})

答案 1 :(得分:1)

尝试使用 http 代理进行连接。 因此,尝试将您的代码更改为:

http_proxy  = "http://46.21.153.16:3128"
proxyDict = {
  "http": http_proxy,
  "https": http_proxy
}

免费代理可能不支持 ssl/tls 连接。

另外,由于您使用的是免费代理,请确保它没有过期。

此外,如果您尝试解析的 url 具有自签名证书,python 请求也可能会失败,因此您必须使用将 verify 参数设置为 False 来发出请求。

a = requests.get('https://example.com', proxies=proxyDict, verify=False)