プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
とある美しい物語の主人公を楽しく再現させてください
過去数年間に夢を分かち合った恋人の役を演じてください
もう愛の涙を流さない恋人になろう
以前と同じ景色があるふりをする
美しい物語の主人公の役割を再現してください
過去数年間に夢を分かち合った恋人の役を演じてください
分からなくても 夜更けに君は一人
まるで私があなたの近くにいるかのように、静かなセーターを着てください
🎵 陈慧娴《傻女》
Scrapy は強力なクローラー フレームワークであり、ミドルウェアを使用することで、ユーザーはクローラーの動作をカスタマイズおよび拡張できます。ミドルウェアは、リクエストと応答の前処理および後処理のメカニズムを提供し、ユーザーがコア コードを変更せずにクローラーの機能を強化できるようにします。
Scrapy では、ミドルウェアの実行順序は「優先度」によって決まります。効率的で保守可能なクローラを構築するには、ミドルウェアの階層を理解し、正しく設定することが重要です。
ミドルウェアは、ユーザーがリクエストとレスポンスを処理するときにカスタム コードを実行できるようにする Scrapy のフックです。ミドルウェアは次の 2 つのカテゴリに分類されます。
ミドルウェアのレベルによって、実行される順序が決まります。 Scrapy は、ミドルウェアのレベルを表すために整数値を使用します。値が小さいほど、ミドルウェアはより早く実行されます。
DOWNLOADER_MIDDLEWARES = {
'myproject.middlewares.CustomDownloaderMiddleware': 543,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
}
上記の構成では次のようになります。
CustomDownloaderMiddleware 的等级为 543
UserAgentMiddleware 的等级为 400
RetryMiddleware 的等级为 500
実行シーケンスは次のとおりです。
UserAgentMiddleware(400)
RetryMiddleware(500)
CustomDownloaderMiddleware(543)
リクエストはエンジンから発生し、下位レベルのミドルウェアを通過して、最終的にダウンローダーに到達します。ダウンローダーから応答が返されると、最初に上位レベルのミドルウェアを通過し、最終的にエンジンに到達します。
クローラーミドルウェアはエンジンとクローラーの間に位置します。構成例を次に示します。
SPIDER_MIDDLEWARES = {
'myproject.middlewares.CustomSpiderMiddleware': 543,
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,
}
上記の構成では次のようになります。
CustomSpiderMiddleware 的等级为 543
HttpErrorMiddleware 的等级为 50
OffsiteMiddleware 的等级为 500
実行シーケンスは次のとおりです。
HttpErrorMiddleware(50)
OffsiteMiddleware(500)
CustomSpiderMiddleware(543)
リクエストはエンジンから発生し、下位レベルのミドルウェアを通過して、最終的にクローラーに到達します。クローラーから応答が返されると、まず上位のミドルウェアを通過し、最終的にエンジンに到達します。
ミドルウェアのレベルを設定するには、Scrapy の設定ファイル settings.py で対応する辞書を定義し、ミドルウェアのパスとレベルを指定する必要があります。例えば:
DOWNLOADER_MIDDLEWARES = {
'myproject.middlewares.CustomDownloaderMiddleware': 543,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
}
SPIDER_MIDDLEWARES = {
'myproject.middlewares.CustomSpiderMiddleware': 543,
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
}
この例では、ダウンローダー ミドルウェア CustomDownloaderMiddleware とクローラー ミドルウェア CustomSpiderMiddleware を定義し、それぞれのレベルを 543 に設定します。
Scrapy は多くの組み込みミドルウェアを提供しており、それぞれにデフォルト レベルがあります。一般的なダウンローダー ミドルウェアとそのデフォルト レベルをいくつか示します。
UserAgentMiddleware: 400
RetryMiddleware: 500
RedirectMiddleware: 600
CookiesMiddleware: 700
クローラー ミドルウェアの場合、一般的なものには次のものがあります。
HttpErrorMiddleware: 50
OffsiteMiddleware: 500
RefererMiddleware: 700
ミドルウェアは Scrapy フレームワークの強力な機能です。ミドルウェアのレベルを正しく設定することで、リクエストと応答の処理を細かく制御できます。ミドルウェアのレベル設定ルールを理解して使用すると、より柔軟で効率的なクローラ システムを構築するのに役立ちます。