Scrapy从列表的每个元素中提取

时间:2016-01-25 13:39:46

标签: python parsing scrapy

我在scrapy中有这个代码,它创建了一个行列表:

list_1 = single.xpath('//table[@class="day-table"]//tbody//tr').extract()

列表中的每个元素都有此示例模板

<img src="test"></img> <div class"class"></div>

如何提取列表中每个元素的某些部分并分配给某个项目?我的实际代码是这个

for u in list1:

item = classitem()
item['label1'] = map(unicode.strip, list1.xpath('(//tr/td[@class="day-table-seed"][1]/span/text())').extract())

我无法弄清楚如何一次提取1个元素

1 个答案:

答案 0 :(得分:2)

在循环中,您需要使用u变量,该变量对应于与您的选择器匹配的下一行。假设您希望将img元素的src属性写入项目字段:

for u in list1:
    item = classitem()
    item['src'] = u.xpath('.//img/@src').extract_first()
    yield item

在Scrapy的条款中list1SelectorList个实例,uSelector

另请注意,重要的是开始你的内心&#34;带有点的XPath表达式使它们在当前行的上下文中工作。