初認識Scrapy-Item Pipeline
5260 ワード
文書ディレクトリ 1. 前言 2. カスタムitem pipeline 3. 例 4. 繰り返しフィルタ 5. item pipelineコンポーネント をアクティブにする 6. 参考文献 1.はじめに
各 をクリーンアップする.キャプチャされたデータの検証(アイテムに特定のフィールドが含まれているかどうかを確認) 重複をチェック(削除) は、取得したアイテムをデータベースに 格納する.
2.カスタムitem pipeline
各
3.例 の削除 に書き込む. に預ける.
詳細はScrapy公式ドキュメント-Item Pipelineを参照
4.繰り返しフィルタ
処理された繰り返し
5.item pipelineコンポーネントをアクティブにする
アイテムパイプアセンブリをアクティブにするには、次の例に示すように、クラスを
この設定でクラスに割り当てられた整数値は、itemが低い順から高い順に実行される実行順序を決定します.習慣的にこれらの数字を0-1000の範囲内に定義します.
6.参考文献
[1]Scrapy公式文書-Item Pipeline
item
がspider
によって捕捉された後、それはItem Pipeline
に送信され、このパイプはいくつかの順序で実行されるコンポーネントによって処理される.各
item pipeline
はPython
のクラスである.それらはitem
を受信し、それに対して操作を行い、プロジェクトがパイプを通過し続けるべきかどうか、または削除して処理しないべきかどうかを決定する.item pipeline
の典型的な用途は次のとおりです.HTML
データ2.カスタムitem pipeline
各
item pipeline
はpython
クラスであり、以下の方法を実装する必要があります.process_item(self, item, spider):
# item pipeline 。
pass
open_spider(self, spider):
# spider 。
pass
close_spider(self, spider):
# spider
pass
from_crawler(cls, crawler):
# , crawler pipeline 。
pass
3.例
item
フィールドの検証および不合格item
item
をjson
ファイルitem
をMongoDB
詳細はScrapy公式ドキュメント-Item Pipelineを参照
4.繰り返しフィルタ
処理された繰り返し
item
を検索して削除します.item
に一意のID
があると仮定しますが、spider
は同じID
を複数返します.from scrapy.exceptions import DropItem
class DuplicatesPipeline(object):
def __init__(self):
self.ids_seen = set()
def process_item(self, item, spider):
if item['id'] in self.ids_seen:
raise DropItem("Duplicate item found: %s" % item)
else:
self.ids_seen.add(item['id'])
return item
5.item pipelineコンポーネントをアクティブにする
アイテムパイプアセンブリをアクティブにするには、次の例に示すように、クラスを
item
の設定に追加する必要があります.ITEM_PIPELINES = {
'myproject.pipelines.PricePipeline': 300,
'myproject.pipelines.JsonWriterPipeline': 800,
}
この設定でクラスに割り当てられた整数値は、itemが低い順から高い順に実行される実行順序を決定します.習慣的にこれらの数字を0-1000の範囲内に定義します.
6.参考文献
[1]Scrapy公式文書-Item Pipeline