[Python]プロキシ設定 – proxy setting –

スポンサーリンク

Pythonのプロキシ設定を行った際、パスワードに特殊文字が入っていたためハマったのでメモしておきます。

ネット見ている感じ、LinuxやMacなど環境によって微妙に異なる箇所があるような気がします。
ご注意ください。

環境

  • Windows10
  • Python3.7.3

設定方法

Pythonのプロキシ設定はコマンドプロンプトで以下のように行います。

set HTTP_PROXY=http://<user>:<password>@<server>:<port>
set HTTPS_PROXY=http://<user>:<password>@<server>:<port>

設定例

  • user: test123
  • password: 456$abc
  • server: foo.sample.com
  • port: 8080
set HTTP_PROXY=http://test123:456%24abc@foo.sample.com:8080
set HTTPS_PROXY=http://test123:456%24abc@foo.sample.com:8080

特殊文字である $ は、 %24 に変換(URLエンコード)する必要があります。
ネット上で、 @%40 に変える必要があるという情報もありましたが、自分の環境では不要でした。
(userにメールアドレスを利用しているケースなどは、変換する必要があると思います。)

URLエンコードについては、外部サイト(よく使う記号のURLエンコード対応表)を参考にさせていただきました。
ありがとうございます。

実行時にオプションとして設定する方法

そのほか、オプションとして設定する方法もあります。

コマンド例(Seleniumをインストール)

pip install selenium --proxy http://test123:456%24abc@foo.sample.com:8080

プロキシ未設定時のエラー例

最後に、Pythonでのプロキシエラー例です。
(パスワードが違っていたりして、プロキシに正常にアクセスできなかったケース)

Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/selenuim/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/selenuim/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/selenuim/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/selenuim/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/selenuim/
  Could not find a version that satisfies the requirement selenuim (from versions: )
No matching distribution found for selenuim

コメント

タイトルとURLをコピーしました