Scrapy-item-pipeline
スクレイピー-アイテムパイプライン
説明
- アイテムパイプライン*は、廃棄されたアイテムを処理する方法です。 アイテムがアイテムパイプラインに送信されると、アイテムはスパイダーによってスクレイピングされ、順次実行される複数のコンポーネントを使用して処理されます。
アイテムが受信されるたびに、次のアクションのいずれかを決定します-
- アイテムの処理を続けます。
- パイプラインからドロップします。
- アイテムの処理を停止します。
アイテムのパイプラインは、一般的に次の目的で使用されます-
- スクレイプされたアイテムをデータベースに保存します。
- 受け取ったアイテムが繰り返されると、繰り返されたアイテムがドロップされます。
- アイテムにターゲットフィールドがあるかどうかを確認します。
- HTMLデータを消去します。
構文
あなたは次の方法を使用してアイテムパイプラインを書くことができます-
上記の方法には、次のパラメータが含まれています-
- アイテム(アイテムオブジェクトまたはディクショナリ)-削り取られたアイテムを指定します。 *spider(spider object)-アイテムをこすったクモ。
次の表に示す追加の方法を使用できます-
Sr.No | Method & Description | Parameters |
---|---|---|
1 |
クモが開いているときに選択されます。 |
spider (spider object) − It refers to the spider which was opened. |
2 |
close_spider(self, spider) クモが閉じているときに選択されます。 |
spider (spider object) − It refers to the spider which was closed. |
3 |
from_crawler(cls, crawler) クローラーの助けを借りて、パイプラインはScrapyの信号や設定などのコアコンポーネントにアクセスできます。 |
crawler (Crawler object) − It refers to the crawler that uses this pipeline. |
例
以下は、さまざまな概念で使用されるアイテムパイプラインの例です。
タグのないアイテムのドロップ
次のコードでは、パイプラインは、VATを含まないアイテムの_(price)属性のバランスをとる(excludes_vat属性)_を設定し、価格タグのないアイテムを無視します-
JSONファイルへのアイテムの書き込み
次のコードは、すべてのスパイダーからのすべてのスクレイプアイテムを単一の items.jl ファイルに保存します。このファイルには、JSON形式のシリアル化形式で1行に1つのアイテムが含まれます。 JsonWriterPipeline クラスは、アイテムパイプラインの記述方法を示すためにコードで使用されます-
MongoDBへのアイテムの書き込み
Scrapy設定でMongoDBアドレスとデータベース名を指定でき、MongoDBコレクションはアイテムクラスにちなんで命名できます。 次のコードは、リソースを適切に収集するために* from_crawler()*メソッドを使用する方法を説明しています-
フィルターの複製
フィルターは繰り返しアイテムをチェックし、既に処理されたアイテムをドロップします。 次のコードでは、アイテムに一意のIDを使用していますが、スパイダーは同じIDを持つ多くのアイテムを返します-
アイテムパイプラインのアクティブ化
次のコードに示すように、_ITEM_PIPELINES_設定にクラスを追加することにより、アイテムパイプラインコンポーネントをアクティブ化できます。 実行する順序でクラスに整数値を割り当てることができ(順序はより低い値からより高い値のクラスまで可能)、値は0〜1000の範囲になります。