Python 从列表中的每一个元素中提取碎片
我在scrapy中有一段代码,它创建了一个行列表:Python 从列表中的每一个元素中提取碎片,python,parsing,scrapy,Python,Parsing,Scrapy,我在scrapy中有一段代码,它创建了一个行列表: list_1 = single.xpath('//table[@class="day-table"]//tbody//tr').extract() 列表中的每个元素都有此示例模板 <img src="test"></img> <div class"class"></div> 我不知道如何在循环中一次提取一个元素,您需要使用u变量,该变量将对应与选择器匹配的下一行。假设希望将img元素的src属
list_1 = single.xpath('//table[@class="day-table"]//tbody//tr').extract()
列表中的每个元素都有此示例模板
<img src="test"></img> <div class"class"></div>
我不知道如何在循环中一次提取一个元素,您需要使用
u
变量,该变量将对应与选择器匹配的下一行。假设希望将img
元素的src
属性写入项字段:
for u in list1:
item = classitem()
item['src'] = u.xpath('.//img/@src').extract_first()
yield item
在Scrapy的术语中,list1
是一个实例,u
是一个实例
还要注意的是,在“内部”XPath表达式的开头加一个点很重要,这样可以使它们在当前行的上下文中工作。简单明了的解释!非常感谢您的明确答复。我完全没有编程背景,在运行脚本后,在我的示例中学习它是一件痛苦的事情,它给出了这个错误AttributeError:“unicode”对象没有属性“xpath”@GGA请替换
list\U 1=single.xpath('//table[@class=“day table”]//tbody//tr')。extract()
带有list\U 1=single.xpath('//table[@class=“日表”]//tbody//tr')
。
for u in list1:
item = classitem()
item['src'] = u.xpath('.//img/@src').extract_first()
yield item