使用scrapy框架爬虫时,用到xpath提取网页标签时,时常用到extract(),有时加上[0],或是extract_first(),那么它们的意义分别是什么呢?
这是一个简单的html结构~
<ul class="list">
<li>123</li>
<li>abc</li>
</ul>
#1
xx.xpath("./ul[@class='list']/li") #xx是html文档
#xpath解析返回一个解析器列表
#2
xx.xpath("./ul[@class='list']/li").extract()
#output
#['123','abc]
#extract使提取内容转换为Unicode字符串,返回数据类型为list
#3
xx.xpath("./ul[@class='list']/li").extract()[0]
#output
#['123']
#返回列表中第一个元素
#4
xx.xpath("./ul[@class='list']/li")[0].extract()
#output与3相同
#返回SelectorList里的第一个元素
#5
#xx.xpath("./ul[@class='list']/li".extract_first()
#output与3相同
#和3作用效果相同
#6
xx.xpath("./ul[@class='list']/li")[0].extract()[0]
#output
#'1'
#返回SelectorList里的第一个元素的第一个字符
这下应该明白了吧。