Как динамически определять скрапы - PullRequest
1 голос
/ 15 апреля 2019

Я хочу передать этот класс Scrap Itemloader. Я знаю, что этот класс не так, но как это сделать?

class DummyItem(scrapy.Item):

    def __init__(self, num):
        self.num = num
        super(DummyItem, self).__init__()

    self.num = scrapy.Field()

1 Ответ

0 голосов
/ 15 апреля 2019

Вам необходимо импортировать элемент ItemLoader и DummyItem в паука, а затем инициализировать загрузчик элемента с вашим классом элемента.

from scrapy.loader import ItemLoader
from myproject.items import DummyItem

def parse(self, response):
    l = ItemLoader(item=DummyItem(), response=response)
    l.add_xpath('num', '//div[@class="product_num"]')
    return l.load_item()

Если вы объявляете свой ItemLoader, вы можете указать default_item_class следующим образом:

class DummyItemLoader(ItemLoader):
    default_item_class = DummyItem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...