Как работать с прокси в urllib3

У меня возникают проблемы с нахождением убедительных примеров того, как создать простой скрипт в urllib3, который открывает URL-адрес (через прокси-сервер), затем читает его и, наконец, печатает. Прокси требует аутентификации пользователя / прохода, но мне не понятно, как вы это делаете? Любая помощь будет оценена.

2 ответа

Решение

urllib3 имеет ProxyManager компонент, который вы можете использовать. Вам нужно будет создать заголовки для компонента Basic Auth, вы можете сделать это вручную или использовать make_headers помощник в urllib3.

Все вместе это будет выглядеть примерно так:

from urllib3 import ProxyManager, make_headers

default_headers = make_headers(proxy_basic_auth='myusername:mypassword')
http = ProxyManager("https://myproxy.com:8080/", headers=default_headers)

# Now you can use `http` as you would a normal PoolManager
r = http.request('GET', 'https://stackru.com/')

Я не могу комментировать, потому что мне не хватает репутации.

Я считаю, что правильный ответ на этот вопрос должен быть

from urllib3 import ProxyManager, make_headers

default_headers = make_headers(proxy_basic_auth='myusername:mypassword')
http = ProxyManager("https://myproxy.com:8080/", headers=default_headers)

# Now you can use `http` as you would a normal PoolManager
r = http.request('GET', 'https://stackru.com/')

(примечание: proxy_basic_auth, а не basic_auth)

Я пытался это с basic_auth в моей среде без какой-либо удачи. Shazow вы передали этот комментарий Git, который указал мне в правильном направлении

Другие вопросы по тегам