Scrapy shell での 1 回のフェッチ用プロキシ
Scrapy shell 内で Request のプロキシメタデータを使い、その設定済みリクエストからのレスポンスを確認します。
Scrapy shell 内で、ダウンローダーに実行させたいリクエストを組み立てます:
from scrapy import Request
fetch(Request(
"https://www.example.com/",
meta={"proxy": "http://proxy.example:8080"},
))
response.status
HttpProxyMiddleware はその Request のメタデータからプロキシの値を読み取ります。これは有効なダウンローダーミドルウェア設定で有効になっている必要があります。その後の response 変数はこのフェッチに属します。この公開 URL では、公開仲介業者が許可されている場合、HTTP プロキシ一覧から認証なしの HTTP アドレスを選び、その URL をそのリクエストのプロキシメタデータに入れます。
Scrapy プロジェクトから shell を起動すると、そのプロジェクトの設定を読み込めます。これによりミドルウェアやその他の設定が選ばれますが、特定のプロキシエンドポイント自体は選ばれません。上記のリクエストメタデータがその選択を直接提供します。
Basic 認証情報を使うプロキシの場合、Scrapy はプロキシ URL にユーザー情報を記載します。組み立てる前にアカウント部分の予約文字をエンコードしてください。そのアカウント用にウェブサイトの Authorization ヘッダーを追加する必要はありません。
Scrapy はサポートされている環境変数からプロキシを検出することもできます。リクエストの明示的なプロキシメタデータが優先されます。意図的に直接接続するリクエストでは、プロキシ値 None により、そのミドルウェアの環境ベースの選択がそのリクエストで無効になります。