xpath contains_Python 爬虫进阶: Scrapy Shell 和 Xpath 学习心得

说来好笑,刚学习爬虫的时候为了调试代码,是将网页下载到本地,再用beautifulsoup载入本地网页文件进行分析,以保证选择器编写正确。

Scrapy内置的调试器Scrapy Shell正好作此用途,使用的选择器则是xpath。

下面是两篇scrapy shell 和 xpath selector的教程。

Scrapy Tutorial #6: Scrapy Shell Overview & Tips​www.accordbox.com
v2-5dd1a63070a79cda0bdfa8ec124c786d_180x120.jpg
Selectors - Scrapy 1.4.0 documentation​docs.scrapy.org

要打开scrapy shell,在终端输入

scrapy shell http://url

scrapy shell将下载网页到本地(不会自动删除)。

在浏览器中打开下载的网页查看,继续在终端输入

view(response)

如果要重新载入网页,或者载入另一个网页,则使用命令代码

fetch("http://url")

确定网页已经正确下载到本地之后,开始测试xpath selector(选择器)。要选取网页上的任何标签内容,比如<title>,使用以下代码

response.selector.xpath("//title/text()").extract()

注意xpath选择器的编写规则。简单举例:

/ 查询绝对路径

// 查询所有标签,如果要选择所有标题标签中的第二个,写为 //title[2]

/text() 标签底下的文字不是节点,在标签后面添加以提取文本内容

//a[contains(@href,"img")]/@href 提取class,id,link等属性

在scrapy shell中调试好的代码可以直接复制到爬虫文件中使用。

从终端退出scrapy shell,windows输入ctrl +D

^D