scrapy list return:如何处理/提取列表的每个元素?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy list return:如何处理/提取列表的每个元素?相关的知识,希望对你有一定的参考价值。
我想问一下如何处理一个变量中提取数据的列表。由于(xpath)选择器只提取第一个.extract_first()或所有内容.extract(),我想知道,我如何迭代并只提取一个元素......如.extract()[i]和i = i + 1 ......那怎么样?
它似乎很明显,但在这一点上,我不明白如何利用项目加载器,管道或任何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
循环遍历列表:
for author in sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract():
item ['author'] = author
另一答案
如果你有一个列表,你可以使用for循环迭代它。
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.
以上是关于scrapy list return:如何处理/提取列表的每个元素?的主要内容,如果未能解决你的问题,请参考以下文章