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:如何处理/提取列表的每个元素?的主要内容,如果未能解决你的问题,请参考以下文章

测试工程师面试解析:提bug后开发不认同如何处理?

接口测试返回数据为JSONP格式时如何处理

如何处理动态填充 ul li 的点击事件?

Flutter Provider select - 如何处理复杂的返回类型,如 List 或 Map

python中的all()如何处理空列表

c#:如何处理对对象进行深度拷贝