Учебники

Scrapy — Предметы

Процесс Scrapy можно использовать для извлечения данных из таких источников, как веб-страницы, используя пауков. 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])

Item предоставляет копию конструктора и предоставляет дополнительный атрибут, который задается элементами в полях.

Полевые объекты

Объекты поля могут быть указаны с использованием следующего класса, в котором класс Field не выдает дополнительный процесс или атрибуты: