说来好笑,刚学习爬虫的时候为了调试代码,是将网页下载到本地,再用beautifulsoup载入本地网页文件进行分析,以保证选择器编写正确。
Scrapy内置的调试器Scrapy Shell正好作此用途,使用的选择器则是xpath。
下面是两篇scrapy shell 和 xpath selector的教程。
Scrapy Tutorial #6: Scrapy Shell Overview & Tipswww.accordbox.com
要打开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