在爬虫的开发中,常常碰到不同的网站,从而每个网站的结构会不一样,每个网站使用的技术也不一样,千差万别的,没有统一的模式,因此开发爬虫没有一个虫就可以爬遍天下。面对这样的情况,当然就是需要开发爬虫的技术人员了,也可以这样说,要想数据有多少,就得有多少人工。因为爬虫总会随着网站技术变更,需要不断更换爬虫的方法,其实除了登录验证这个环节之外,就是剩下了数据的提取工作量了。比如网站更换了标签的名称,导致提取数据失败,这时就需要立即更换提取方法。所以掌握提取数据的技术就成为爬虫开发人员的基础知识了,也是最常使用的技术。
目前从网页源码里提取数据的主要有两种技术,一种是CSS,一种是XPath。其实XPath是可以包括CSS的,可以把CSS定位转换为XPath表示。下面就通过例子来学习这两种技术手段,这里主要采用scrapy shell来学习。Scrapy shell是一个强大的交互式的调试工具,可以连接到指定网站,然后对网站的内容进行测试,查看自己编写的CSS或XPath表达式是否正确。这里采用它来学习CSS和XPath,也可以起到事半攻倍的效果,因为你写的表达式可以立即输出查询的内容,立即就可以判断自己的理解是否正确。