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])
Элемент предоставляет копию конструктора и дополнительный атрибут, который задается элементами в полях.
Объекты поля
Объекты поля могут быть указаны с использованием следующего класса, в котором класс поля не выдает дополнительный процесс или атрибуты:
class scrapy.item.Field([arg])