Я хочу передать все трафик Python через HTTP-прокси-сервер, я проверил urlib2 и, например, запросит пакеты, их можно настроить для использования прокси-серверов, но как я могу использовать что-то вроде прокси-сервера всей системы для Python для прокси-сервера данные?
Система 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>"
или в script, которые хотят пройти через прокси
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 script
$ python my_script.py
UPDATE
Кроме того, вы можете использовать redsocks с помощью этого инструмента вы можете перенаправить все ваши TCP-соединения в PROXY с аутентификацией или без нее. Но вы должны заботиться, потому что это для всех соединений не только для python.
Системы Windows вы можете использовать такие инструменты, как freecap, proxifier, proxycap и настроить запуск за исполняемым файлом python
По общему признанию, это не совсем то, что вы ищете, но если вы знаете программный источник всего сетевого трафика в вашем коде на 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
Здесь упоминается, что это не рекомендуется, но, похоже, он работает нормально.