scrapy ItemLoader返回项目列表 def解析: 对于LinkExtractor中的链接(restrict_xpaths=“BLAH”)。提取链接(响应)[:-1]: 屈服请求(link.url) l=MytemsLoader() l、 添加值('main1',一些xpath) l、 添加值('main2',一些xpath) l、 添加值('main3',一些xpath) rows=response.xpath(“表[@id='BLAH']/tbody[contains(@id'BLOB')])) 对于行中的行: l、 添加_值('table1',一些基于行的xpath) l、 添加_值('table2',一些基于行的xpath) l、 添加_值('main3',一些基于行的xpath) 收益率l.loaditem()

scrapy ItemLoader返回项目列表 def解析: 对于LinkExtractor中的链接(restrict_xpaths=“BLAH”)。提取链接(响应)[:-1]: 屈服请求(link.url) l=MytemsLoader() l、 添加值('main1',一些xpath) l、 添加值('main2',一些xpath) l、 添加值('main3',一些xpath) rows=response.xpath(“表[@id='BLAH']/tbody[contains(@id'BLOB')])) 对于行中的行: l、 添加_值('table1',一些基于行的xpath) l、 添加_值('table2',一些基于行的xpath) l、 添加_值('main3',一些基于行的xpath) 收益率l.loaditem(),scrapy,scrapy-spider,Scrapy,Scrapy Spider,我使用itemloader是因为我想预处理这些字段并轻松处理任何空值。 表的每一行都应该是一个实体,其中包含main1、2、3…等字段以及它自己的字段。 但是,上面的代码覆盖了仅返回每个主页的最后一行的l itemloader 问题: 如何使用itemloader将主页面数据与每个表行条目组合起来?如果我使用两个项目加载器,每个部分一个,它们如何组合 供日后参考: def newparse: 对于LinkExtractor中的链接(restrict_xpaths=“BLAH”)。提取链接(响应)

我使用itemloader是因为我想预处理这些字段并轻松处理任何空值。 表的每一行都应该是一个实体,其中包含main1、2、3…等字段以及它自己的字段。 但是,上面的代码覆盖了仅返回每个主页的最后一行的l itemloader

问题: 如何使用itemloader将主页面数据与每个表行条目组合起来?如果我使用两个项目加载器,每个部分一个,它们如何组合

供日后参考:

def newparse:
对于LinkExtractor中的链接(restrict_xpaths=“BLAH”)。提取链接(响应)[:-1]:
屈服请求(link.url)
ml=MyitemLoader()
ml.add_值('main1',一些xpath)
ml.add_值('main2',一些xpath)
ml.add_值('main3',一些xpath)
main_item=ml.load_item()
rows=response.xpath(“表[@id='BLAH']/tbody[contains(@id'BLOB')]))
对于行中的行:
bl=MyitemLoader(项目=主项目,选择器=行)
bl.add_值('table1',一些基于行的xpath)
bl.add_值('table2',一些基于行的xpath)
bl.add_值('main3',一些基于行的xpath)
产量bl.loaditem()

您需要在循环中实例化一个新的
ItemLoader
,提供:

l=MytemsLoader()
l、 添加值('main1',一些xpath)
l、 添加值('main2',一些xpath)
l、 添加值('main3',一些xpath)
item=l.loaditem()
rows=response.xpath(“表[@id='BLAH']/tbody[contains(@id'BLOB')]))
对于行中的行:
l=MytemsLoader(项目=项目)
l、 添加_值('table1',一些基于行的xpath)
l、 添加_值('table2',一些基于行的xpath)
l、 添加_值('main3',一些基于行的xpath)
收益率l.loaditem()

谢谢@alecxe正是我所期待的for@codervince乐于助人,如果你认为答案是值得的,就考虑接受这个答案。谢谢