我想问一下如何处理一个变量中提取的数据列表。由于(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???
另外,如果你能指出我正确的方向,我将非常感激!
答案 0 :(得分:0)
如果你有一个列表,你可以使用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.
答案 1 :(得分:0)
您可以使用for
循环遍历列表:
for author in sel.xpath('.//a[contains(@data-hook, "review-author")]/text()').extract():
item ['author'] = author