すべての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>"
または、プロキシを通過させるスクリプト内
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コードですべてのネットワークトラフィックのプログラムソースを知っている場合は、コード自体でこのプロキシラッピングを行うことができます。次のリンクのPySocks
モジュールを使用して、純粋なpythonソリューションを提案します。
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
彼らは、これは推奨されていないと述べていますが、私にとってはうまく機能しているようです。