scrapy list return:如何处理/提取列表的每个元素?

scrapy list return: how to process / extract each element of a list?

我想问一下如何在一个变量中处理提取的数据列表。由于 (xpath) 选择器仅提取第一个 .extract_first() 或所有内容 .extract (),我想知道如何迭代并仅提取一个元素...如 .extract()[i ] 和 i=i+1... 必须如何放置?

这看起来很明显,但此时我不明白如何利用 itemloader、管道或任何 scrapy 文档提供的方法来解决这个问题。

item ['author'] = sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract_first()

item ['author'] = sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract()[0]

item ['author'] = sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract()[i] ... i=i+1???

此外,如果您能指出正确的方向,我将不胜感激!

如果您有一个列表,您可以使用 for-loop.

对其进行迭代
item ['author'] = sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract()

// Using this for-loop construct instead of indices avoids off-by-one errors
// and the code won't run if the list is empty.
for element in item['author']:
    print element
    // Do whatever you want with the element.

您可以使用 for 循环遍历列表:

for author in sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract():
    item ['author'] = author