我想将这个类传递给易碎的Itemloader。
我知道这堂课错了,但是怎么办呢?

class DummyItem(scrapy.Item):

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

    self.num = scrapy.Field()

最佳答案

您需要在Spider中导入ItemLoaderDummyItem项目,然后使用您的项目类初始化项目加载器。

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

关于python - 如何动态定义拼凑项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55692136/

10-10 13:29