我在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个元素
答案 0 :(得分:2)
在循环中,您需要使用u
变量,该变量对应于与您的选择器匹配的下一行。假设您希望将img
元素的src
属性写入项目字段:
for u in list1:
item = classitem()
item['src'] = u.xpath('.//img/@src').extract_first()
yield item
在Scrapy的条款中list1
是SelectorList
个实例,u
是Selector
。
另请注意,重要的是开始你的内心&#34;带有点的XPath表达式使它们在当前行的上下文中工作。