XPath理解:使用extract()时[0]位置的理解

以爬取快代理https://www.kuaidaili.com/free/为例。

XPath理解:使用extract()时[0]位置的理解_第1张图片

response是整个页面返回的数据,页面内容。 

  • response.xpath('//*[@id="list"]/table/tbody/tr')

返回结果:

XPath理解:使用extract()时[0]位置的理解_第2张图片

返回一个SelectorList对象,SelectorList 类是内建 list 类的子类,它是一个列表,列表的每一项都是一个如下图所示的元素:

提供了一些额外的方法:
 xpath(query)
 css(query)
 extract()
 re()
 __nonzero__()

  • response.xpath('//*[@id="list"]/table/tbody/tr').extract()

    返回结果:

XPath理解:使用extract()时[0]位置的理解_第3张图片

.extract()提取HTML内容,返回一个列表。 

  • response.xpath('//*[@id="list"]/table/tbody/tr').extract()[0]
    response.xpath('//*[@id="list"]/table/tbody/tr')[0].extract()

这两个一个是先得到一个HTML内容组成的列表,再取第一个元素;一个是先得到SelectorList第一个元素,再提取成HTML内容,总之返回的结果一样。

  • response.xpath('//*[@id="list"]/table/tbody/tr')[0].extract()[0]

返回结果:

返回的是上一个结果(字符串)的第一个字符。 

你可能感兴趣的:(python网络爬虫)