Scrapy - Artículos
Descripción
El proceso scrapy se puede utilizar para extraer los datos de fuentes como páginas web usando arañas. Usos scrapyItem class para producir la salida cuyos objetos se utilizan para recopilar los datos extraídos.
Declaración de artículos
Puede declarar los elementos utilizando la sintaxis de definición de clase junto con los objetos de campo que se muestran a continuación:
import scrapy
class MyProducts(scrapy.Item):
productName = Field()
productLink = Field()
imageURL = Field()
price = Field()
size = Field()
Campos de artículo
Los campos de elementos se utilizan para mostrar los metadatos de cada campo. Como no hay limitación de valores en los objetos de campo, las claves de metadatos accesibles no contienen ninguna lista de referencia de los metadatos. Los objetos de campo se utilizan para especificar todos los metadatos de campo y puede especificar cualquier otra clave de campo según sus requisitos en el proyecto. Se puede acceder a los objetos de campo utilizando el atributo Item.fields.
Trabajar con elementos
Hay algunas funciones comunes que se pueden definir cuando se trabaja con los elementos. Para obtener más información, haga clic en este enlace .
Ampliación de elementos
Los artículos se pueden ampliar indicando la subclase del artículo original. Por ejemplo
class MyProductDetails(Product):
original_rate = scrapy.Field(serializer = str)
discount_rate = scrapy.Field()
Puede utilizar los metadatos de campo existentes para ampliar los metadatos de campo agregando más valores o cambiando los valores existentes como se muestra en el siguiente código:
class MyProductPackage(Product):
name = scrapy.Field(Product.fields['name'], serializer = serializer_demo)
Objetos del artículo
Los objetos de elemento se pueden especificar utilizando la siguiente clase que proporciona el nuevo elemento inicializado a partir del argumento dado:
class scrapy.item.Item([arg])
El elemento proporciona una copia del constructor y proporciona un atributo adicional que proporcionan los elementos de los campos.
Objetos de campo
Los objetos de campo se pueden especificar utilizando la siguiente clase en la que la clase de campo no emite el proceso o los atributos adicionales:
class scrapy.item.Field([arg])