Невозможно соединиться с прокси-ошибкой на запросы .get () или запросы. - PullRequest
0 голосов
/ 10 января 2019

У меня есть два URL для получения данных. Используя мой код, первый URL работает, тогда как второй URL дает ProxyError.

Я использую библиотеку requests в Python 3 и пытался найти проблему в Google и здесь, но безуспешно.

Мой фрагмент кода:

    import requests

    proxies = {
      'http': 'http://user:pass@xxx.xxx.xxx.xxx:xxxx',
      'https': 'http://user:pass@xxx.xxx.xxx.xxx: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 выдает следующую ошибку:

    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()

  1. Пожалуйста, объясните мне, почему это происходит, и есть ли какая-либо разница между рукопожатием обоих URL?

  2. urllib.request.urlopen работает нормально, поэтому я просто ищу ответы, используя requests

1 Ответ

0 голосов
/ 11 января 2019

Мне удалось запретить действительный ответ для url2 при использовании аргумента ключевого слова headers со строкой User-Agent, установленной в Chrome.

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

Чтобы ответить на ваш первый вопрос, возможная причина этого связана с настройками на стороне сервера. Возможно, он настроен так, чтобы не принимать запросы от неизвестных агентов или запросы с отсутствующим заголовком User-Agent.

...