Scripyフレームワークで使う基本的な知識
scrapyはTwistedに基づく非同期処理の枠組みであり、拡張性が強い。長所はここでもういちいちくどくど説明しない。
次にいくつかの概念的な知識を紹介して、みんなにscrapyを理解するように手伝います。
一、データの流れ
このフレームを上手に使いこなすためには、データの流れがどのようになっているかを知る必要があります。まとめは以下の通りです
1.エンジンはまずウェブサイトを開けて、urlをお願いします。
2.エンジンはスケジューラによってRequest形式でurlをスケジュールする。
3.エンジンは次のurlを要求します。
4.スケジューラは、urlをDownloader Middlewaresを通じてエンジンに送信します。
5.Downloaderはreponseを生成し、Downloader Middlewaresを通じてエンジンに送信する。
6.エンジン受信Resonse spider Middlewareでspiderに送信する処理
7.レスポンスの処理
8.エンジンはspider処理のitemをItemPipelineに与え、新しいRequestをスケジューラに供給します。
二、各構造の役割
Downloder Middleware
スケジューラは列からRequestを取り出してDownloaderにダウンロードを実行します。このプロセスはDownloader Middlewareの処理を経ます。
作用の位置は二つあります。は、スケジューラからRequestを呼び出してDownloaderに送信する前に。 ダウンロードした後、Responseを生成してspiderに送信する前に。 核心方法は三つあります。
process.request(request、spider)
RequestがDownloaderに到達する前に呼び出しられます。
パラメータの紹介: request:Requestオブジェクトは、処理されたRequestです。 spider:spiderオブジェクト、上で処理されるRequestに対応するspider。 戻り値:
1.
2.
3.
process.レスポンス(request,レスポンス,spider)
位置: DownloaderがRequestを実行すると、対応するReponseが得られ、scrapyエンジンはReponseをspidearに送信して解析し、送信する前にこの方法を呼び出してReponseを処理します。 戻り値の場合:
1.
2.
process.exception(request,exception,spider)
この関数は主に異常を処理するために使われます。
spider Middleware
位置: DownloaderはResponseを生成した後、spiderに送ります。 は発送前にspider Middlewareで処理されます。 コア方法:
process.soider_input(レスポンス、spider)
戻り値:
1.Noneに戻る
Responseを引き続き処理して、すべての
2.飛び出す異常
Requestの
process.spider_out put(reponse,reult,spider)
spiderがResponseを処理して結果を返すと呼び出しられます。
process.spider_exception(レスポンス、exception、spider)
戻り値:none
引き続きレスポンスを処理し、反復可能なオブジェクトを返し、
process.startrequestrequests、spider)
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。
次にいくつかの概念的な知識を紹介して、みんなにscrapyを理解するように手伝います。
一、データの流れ
このフレームを上手に使いこなすためには、データの流れがどのようになっているかを知る必要があります。まとめは以下の通りです
1.エンジンはまずウェブサイトを開けて、urlをお願いします。
2.エンジンはスケジューラによってRequest形式でurlをスケジュールする。
3.エンジンは次のurlを要求します。
4.スケジューラは、urlをDownloader Middlewaresを通じてエンジンに送信します。
5.Downloaderはreponseを生成し、Downloader Middlewaresを通じてエンジンに送信する。
6.エンジン受信Resonse spider Middlewareでspiderに送信する処理
7.レスポンスの処理
8.エンジンはspider処理のitemをItemPipelineに与え、新しいRequestをスケジューラに供給します。
二、各構造の役割
Downloder Middleware
スケジューラは列からRequestを取り出してDownloaderにダウンロードを実行します。このプロセスはDownloader Middlewareの処理を経ます。
作用の位置は二つあります。
process.request(request、spider)
RequestがDownloaderに到達する前に呼び出しられます。
パラメータの紹介:
1.
None
に戻って、Requestを実行してResonseを得るまで、他のprocess_request()
方法を呼び出します。2.
Response
オブジェクトに戻り、低優先度のprocess_request()
およびprocess_exception
は起動しません。3.
request
オブジェクトを返し、低優先度のprocess_request()
は実行を停止し、新しいRequest
を返します。process.レスポンス(request,レスポンス,spider)
位置:
1.
Request
に戻る優先度の低いprocess_respons()
は起動しません。2.
response
の低優先度を返し、process_respons()
の呼び出しを継続する。process.exception(request,exception,spider)
この関数は主に異常を処理するために使われます。
spider Middleware
位置:
process.soider_input(レスポンス、spider)
戻り値:
1.Noneに戻る
Responseを引き続き処理して、すべての
spiderMiddleware
を呼び出して、spider処理を知っています。2.飛び出す異常
Requestの
errback()
メソッドを直接呼び出し、process_spider_output()
を用いて処理する。process.spider_out put(reponse,reult,spider)
spiderがResponseを処理して結果を返すと呼び出しられます。
process.spider_exception(レスポンス、exception、spider)
戻り値:none
引き続きレスポンスを処理し、反復可能なオブジェクトを返し、
process_spider_output()
方法を呼び出します。process.startrequestrequests、spider)
spider
で起動されたRequest
をパラメータとして呼び出され、request
に戻る必要があります。締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。