Scrapy - Objets
La description
Le processus Scrapy peut être utilisé pour extraire les données de sources telles que des pages Web à l'aide des araignées. Utilisations ScrapyItem class pour produire la sortie dont les objets sont utilisés pour rassembler les données récupérées.
Déclaration d'éléments
Vous pouvez déclarer les éléments à l'aide de la syntaxe de définition de classe avec les objets de champ affichés comme suit -
import scrapy
class MyProducts(scrapy.Item):
productName = Field()
productLink = Field()
imageURL = Field()
price = Field()
size = Field()
Champs d'article
Les champs d'élément sont utilisés pour afficher les métadonnées de chaque champ. Comme il n'y a pas de limitation de valeurs sur les objets de champ, les clés de métadonnées accessibles ne contiennent aucune liste de référence des métadonnées. Les objets de champ sont utilisés pour spécifier toutes les métadonnées de champ et vous pouvez spécifier toute autre clé de champ selon vos besoins dans le projet. Les objets de champ sont accessibles à l'aide de l'attribut Item.fields.
Travailler avec des éléments
Certaines fonctions communes peuvent être définies lorsque vous travaillez avec les éléments. Pour plus d'informations, cliquez sur ce lien .
Extension des éléments
Les éléments peuvent être étendus en indiquant la sous-classe de l'élément d'origine. Par exemple -
class MyProductDetails(Product):
original_rate = scrapy.Field(serializer = str)
discount_rate = scrapy.Field()
Vous pouvez utiliser les métadonnées de champ existantes pour étendre les métadonnées de champ en ajoutant plus de valeurs ou en modifiant les valeurs existantes comme indiqué dans le code suivant -
class MyProductPackage(Product):
name = scrapy.Field(Product.fields['name'], serializer = serializer_demo)
Objets d'article
Les objets élément peuvent être spécifiés à l'aide de la classe suivante qui fournit le nouvel élément initialisé à partir de l'argument donné -
class scrapy.item.Item([arg])
L'élément fournit une copie du constructeur et fournit un attribut supplémentaire qui est donné par les éléments dans les champs.
Objets de champ
Les objets de champ peuvent être spécifiés à l'aide de la classe suivante dans laquelle la classe Field n'émet pas le processus ou les attributs supplémentaires -
class scrapy.item.Field([arg])