Как передать все трафик Python через прокси-сервер http?

Я хочу передать все трафик Python через HTTP-прокси-сервер, я проверил urlib2 и, например, запросит пакеты, их можно настроить для использования прокси-серверов, но как я могу использовать что-то вроде прокси-сервера всей системы для Python для прокси-сервера данные?

Ответ 1

Система Linux сначала экспортирует переменные среды, подобные этой

$ export http_proxy="http://<user>:<pass>@<proxy>:<port>"
$ export HTTP_PROXY="http://<user>:<pass>@<proxy>:<port>"

$ export https_proxy="http://<user>:<pass>@<proxy>:<port>"
$ export HTTPS_PROXY="http://<user>:<pass>@<proxy>:<port>"

или в сценарии, который вы хотите пройти через прокси

import os

proxy = 'http://<user>:<pass>@<proxy>:<port>'

os.environ['http_proxy'] = proxy 
os.environ['HTTP_PROXY'] = proxy
os.environ['https_proxy'] = proxy
os.environ['HTTPS_PROXY'] = proxy

#your code goes here.............

затем запустите скрипт Python

$ python my_script.py

ОБНОВИТЬ

Также вы можете использовать redsocks с этим инструментом, вы можете молча перенаправить все ваши TCP-соединения к PROXY с аутентификацией или без нее. Но вы должны позаботиться, потому что это для всех соединений, а не только для питона.

Системы Windows, вы можете использовать такие инструменты, как FreeCap, Proxifier, ProxyCap и настроить для работы за питоном исполняемого

Ответ 2

По общему признанию, это не совсем то, что вы ищете, но если вы знаете программный источник всего сетевого трафика в вашем коде на Python, вы можете сделать эту прокси-упаковку в самом коде. Чистое решение python предлагается с помощью модуля PySocks в следующей ссылке:

https://github.com/httplib2/httplib2/issues/22

import httplib2
# detect presense of proxy and use env varibles if they exist
pi = httplib2.proxy_info_from_environment()
if pi:
    import socks
    socks.setdefaultproxy(pi.proxy_type, pi.proxy_host, pi.proxy_port)
    socks.wrapmodule(httplib2)    

# now all calls through httplib2 should use the proxy settings
httplib2.Http()

Теперь каждый вызов, сделанный с помощью httplib2, будет использовать эти настройки прокси. Вы должны иметь возможность обернуть любой сетевой модуль, который использует сокеты для использования этого прокси.

https://github.com/Anorov/PySocks

Здесь упоминается, что это не рекомендуется, но, похоже, он работает нормально.

Ответ 3

введите описание изображения здесь

Может ли кто-нибудь помочь мне разобраться с вышеупомянутой проблемой, я перепробовал все, что не смогло передать имя пользователя и пароль.