无法连接到python中的requests.get()或requests.post()上的代理错误

Cannot connect to proxy error on requests.get() or requests.post() in python

我有两个URL来获取数据。 使用我的代码,第一个URL正在运行,而第二个URL正在提供ProxyError

我在Python 3中使用requests库并试图在Google和这里搜索问题,但没有成功。

我的代码片段是:

1
2
3
4
5
6
7
8
9
10
11
12
    import requests

    proxies = {
      'http': 'http://user:[email protected]:xxxx',
      'https': 'http://user:[email protected]:xxxx',
    }

    url1 = 'https://en.oxforddictionaries.com/definition/act'
    url2 = 'https://dictionary.cambridge.org/dictionary/english/act'

    r1 = requests.get(url1, proxies=proxies)
    r2 = requests.get(url2, proxies=proxies)

url1工作正常,但url2会出现以下错误:

1
    ProxyError: HTTPSConnectionPool(host='dictionary.cambridge.org', port=443): Max retries exceeded with url: /dictionary/english/act (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response',)))

使用request.post()时也是如此

  • 请解释一下为什么会发生这种情况,两个网址的握手之间有什么区别吗?

  • urllib.request.urlopen工作正常,所以我明确地使用requests寻找答案


  • 当使用headers关键字参数并将User-Agent字符串设置为Chrome时,我能够违反url2的有效响应。

    1
    r2 = requests.get(url2, proxies=proxies, headers={'User-Agent': 'Chrome'})

    要回答您的第一个问题,可能的原因与服务器端设置有关。 它可能配置为不接受来自未知代理的请求或缺少User-Agent标头的请求。