Scrapy-items
スクレイピー-アイテム
説明
スクレイピープロセスを使用して、スパイダーを使用してWebページなどのソースからデータを抽出できます。 Scrapyは Item クラスを使用して、スクレイピングされたデータの収集に使用されるオブジェクトの出力を生成します。
アイテムの宣言
あなたは、次のように示されているフィールドオブジェクトとともにクラス定義構文を使用してアイテムを宣言することができます-
import scrapy
class MyProducts(scrapy.Item):
productName = Field()
productLink = Field()
imageURL = Field()
price = Field()
size = Field()
アイテムフィールド
項目フィールドは、各フィールドのメタデータを表示するために使用されます。 フィールドオブジェクトには値の制限がないため、アクセス可能なメタデータキーはメタデータの参照リストを保持しません。 フィールドオブジェクトはすべてのフィールドメタデータを指定するために使用され、プロジェクトの要件に応じて他のフィールドキーを指定できます。 フィールドオブジェクトには、Item.fields属性を使用してアクセスできます。
アイテムの使用
アイテムを操作するときに定義できる一般的な機能がいくつかあります。 詳細については、このリンク:/scrapy/working_with_items [link]をクリックしてください。
アイテムの拡張
アイテムは、元のアイテムのサブクラスを指定することで拡張できます。 例えば-
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])
アイテムは、コンストラクターのコピーを提供し、フィールド内のアイテムによって与えられる追加の属性を提供します。
フィールドオブジェクト
フィールドオブジェクトは、フィールドクラスが追加のプロセスや属性を発行しない次のクラスを使用して指定することができます-
class scrapy.item.Field([arg])