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])