Python 请求返回 OSError 403 禁止在 Ubuntu 上使用代理

Python Request Returns OSError 403 Forbidden with Proxies on Ubuntu

提问人:Nebula1327 提问时间:7/4/2023 更新时间:7/4/2023 访问量:99

问:

我花了无数个小时试图解决以下问题,虽然我已经缩小了问题范围,但我还没有找到解决方案。

该代码在 Windows 10 上运行良好,没有错误,但是,在 Ubuntu 上运行时,大约 1/50-100 个请求会产生以下错误:

HTTPSConnectionPool(host='api.my-ip.io/ip', port=443): Max retries exceeded with url: /ip (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden')))

我用于测试的代码:

import requests
from time import sleep

url = "https://api.my-ip.io/ip"
proxyList = [
'http://user:pass@ip:port',
'http://user:pass@ip:port',
'http://user:pass@ip:port'
]

def startTest():
    while True:
        for proxy in proxyList:
            r = requests.get(url, proxies={'https':proxy}, timeout=20)
            print(f"[Status: {r.status_code}] - [Resp: {r.text}] - [Proxy: {proxy}]")
            sleep(1)
startTest()

为了澄清,以下是一些进一步的细节:

  • 这个错误似乎在我尝试过的几个网站/api 中持续存在,所以似乎不是该网站
  • 我尝试在同一个本地IP上运行Windows和Linux,以消除我的服务器成为问题
  • Windows和Linux都运行相同的Python版本
  • 它不是列表中产生错误的选择错误代理

代理是付费的(这就是我编辑该信息的原因)。我无法访问配置,但是,除了我已经尝试过欺骗(可能很糟糕)的标头之外,我无法理解在同一网络上的 Windows 和 Linux 上运行代码有什么区别。

任何帮助将不胜感激。

ubuntu python-requests http-status-code-403 代理

评论


答: 暂无答案