プロキシファイルはプールであり、Requests のルーティングテーブルではない
認証済みプロキシリストの1行を、プロキシアドレスを宛先ルーティングのキーにせずに、選択したエンドポイントへ変換します。
ファイルからプロキシを1つ選び、そのうえでウェブサイトへのリクエスト用のルートマップを組み立てます。候補エンドポイントのプールは、それ自体が Requests のルーティング辞書ではありません。
- 定義された形式に従って行を解析します。 非公式な
IP:port:user:password行は、IPv6 アドレスや認証情報にコロンが含まれると曖昧になります。IPv4 ホスト、数値ポート、コロンを含まないユーザー名であれば、分割を限定して残りのテキストをパスワードとして残せます。これらの制約が当てはまらない場合は、別々の構造化フィールドを使ってください。 - この操作に使うエンドポイントを選びます。 実際のプロトコルを保ち、URL を組み立てるときに 認証情報の構成要素をエンコードします。その秘密を含む値は通常のログに出さないでください。
- 宛先スキームをその選択した URL にマッピングします。 選択した HTTP プロキシ1つに対して、マップは次のようになります。
routes = {
'http': selected_proxy_url,
'https': selected_proxy_url,
}http と https というキーは宛先スキームを選びます。http://203.0.113.10 のようなキーは代わりに、まさにその宛先ホストへのリクエストを選びます。そのアドレスのプロキシにラベルを付けるものではありません。すべてのプロキシ IP をキーにすると、無関係なウェブサイトが意図したルートを失うことがあります。
プールを一度解析し、エンドポイントを選び、クライアント呼び出し用のマッピングを作成します。これらの手順を分けておけば、Requests のルーティングキーの意味を変えずに選択ポリシーを変更できます。