Невозможно получить URL с запросом из-за ошибки прокси, но с настройками прокси, установленными правильно.Работа в среде единого входа - PullRequest
0 голосов
/ 05 марта 2019

Я нахожусь за настройками прокси с правильно настроенными переменными среды на настройках прокси. Переменные окружения работают правильно, например, при установке pip. Я извлекаю настройки прокси с помощью метода getproxies, который я проверил и возвращает правильный dict.

Я пробую следующий подход: запросы на импорт импорт urllib

r = requests.get('http://www.nu.nl', proxies=urllib.request.getproxies())

Я получаю сообщение об ошибке:

ProxyError: HTTPSConnectionPool(host='www.nu.nl', port=443): Max retries 
exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', 
OSError('Tunnel connection failed: 407 authenticationrequired',)))

Что мне здесь не хватает?

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Хорошо, разобрался. Проблема с моими переменными среды состояла в том, что имя пользователя и пароль не были указаны, потому что я работаю в среде единого входа. Поэтому пароль должен быть правильно установлен. Простая замена учетных данных в определении прокси не работала, поэтому мне пришлось использовать средство открытия urllib, чтобы исправить мою проблему. Теперь это работает как шарм.

import urllib

username = 'userID'  # ex. ID
password = "password"  # password

targetUrl = "http://www.example.org/"

proxies = {
   'https':  'https://{}:{}@proxyAdress:port'.format(username, password)}
proxy = urllib.request.ProxyHandler(proxies)
opener = urllib.request.build_opener(proxy)
urllib.request.install_opener(opener)

with urllib.request.urlopen(targetUrl) as url:
    text = str(url.read())
0 голосов
/ 05 марта 2019

Код HTTP 407. утверждает, что вам необходимо пройти аутентификацию на прокси-сервере.
Заголовок HTTP-ответа Proxy-Authenticate сообщит вам, какой тип аутентификации требуется - распечатать заголовки ответа.

Также может быть проблема с URL ... попробуйте удалить бит www

Для справки: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/407

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...