Scrapy-アイテム
説明
Scrapyプロセスは、スパイダーを使用してWebページなどのソースからデータを抽出するために使用できます。Scrapyの用途Item スクレイピングされたデータを収集するためにオブジェクトが使用される出力を生成するクラス。
アイテムの宣言
次のように示すフィールドオブジェクトとともに、クラス定義構文を使用してアイテムを宣言できます。
import scrapy
class MyProducts(scrapy.Item):
productName = Field()
productLink = Field()
imageURL = Field()
price = Field()
size = Field()
アイテムフィールド
アイテムフィールドは、各フィールドのメタデータを表示するために使用されます。フィールドオブジェクトの値に制限がないため、アクセス可能なメタデータキーには、メタデータの参照リストは含まれていません。フィールドオブジェクトは、すべてのフィールドメタデータを指定するために使用され、プロジェクトの要件に応じて他のフィールドキーを指定できます。フィールドオブジェクトには、Item.fields属性を使用してアクセスできます。
アイテムの操作
アイテムを操作するときに定義できる一般的な関数がいくつかあります。詳細については、このリンクをクリックしてください。
アイテムの拡張
アイテムは、元のアイテムのサブクラスを指定することで拡張できます。たとえば-
class MyProductDetails(Product):
original_rate = scrapy.Field(serializer = str)
discount_rate = scrapy.Field()
次のコードに示すように、既存のフィールドメタデータを使用して、値を追加したり、既存の値を変更したりして、フィールドメタデータを拡張できます。
class MyProductPackage(Product):
name = scrapy.Field(Product.fields['name'], serializer = serializer_demo)
アイテムオブジェクト
アイテムオブジェクトは、指定された引数から新しく初期化されたアイテムを提供する次のクラスを使用して指定できます-
class scrapy.item.Item([arg])
アイテムはコンストラクターのコピーを提供し、フィールドのアイテムによって与えられる追加の属性を提供します。
フィールドオブジェクト
フィールドオブジェクトは、Fieldクラスが追加のプロセスまたは属性を発行しない次のクラスを使用して指定できます-
class scrapy.item.Field([arg])