首页 > 解决方案 > Python 请求连接到被阻止的服务器

问题描述

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

我使用了许多不同的代理服务器,没有一个对我有用。 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)

Traceback(最近一次调用):文件“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', port=443):最大重试次数超过 url:/management (由 ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',)))

标签: pythonpython-3.xvpn

解决方案


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

复制您的浏览器代理,然后尝试根据请求更改用户代理。我敢打赌 request 使用它自己的默认用户代理或 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'})

推荐阅读