从现在开始,我们将进入实战阶段,本课程主要知识点包括三个:
1)一个简单的爬取豆瓣读书内容示例 2)使用PyCharm进行代码调试方法 3)初步学会使用XPath提取html元素
一、一个简单的爬取豆瓣读书内容示例
我们现在要爬取豆瓣读书中的新书速递中的书籍信息,主要提取它们的书籍标题、书籍内容链接以及发布时间。如下图:
(图一)豆瓣读书html
1为我们要爬取的豆瓣读书的URL地址,2为我们要爬取的具体内容的HTML元素区块。那么对照我们使用Scrapy应该怎么写呢?
第一步:在scrapy中,我们把要爬取的目标网页的URL放在start_urls中,start_urls是可以存放多个url地址的,至于它们是怎么一个个加载这些url的,我会在后面讲解源码的课程中会详细讲解。第二步就是获取ul标签下的所有li标签的内容,因为我们需要的书籍信息都在这些li里面。
(图二)豆瓣读书爬虫源代码
从上面的第二个红色框,我们发现它是先通过找到id为content,然后找出子div,再找出这个子div下的第二个子div,再就是ul/li。这个只是其中一种方法,这种方法主要是直接使用浏览器自带的“Copy XPath”功能来实现的(Chrome浏览器的实现方式为选中区域,右击,Copy,选择Copy XPath)。
浏览器自带的“Copy XPath”功能
实际上我们完全可以使用另一种方法获取到这个li,方法很多,下面任举一例子:
(图三)获取li的两种方法
在(图二)豆瓣读书爬虫源代码中有一个name ="douban_book",这个是每个爬虫文件的唯一名称,我们在执行爬虫时就会用到它。
二、使用PyCharm进行代码调试
对于程序员来说,我们深知代码调试的重要性,那么我们如何使用PyCharm来调试爬虫代码呢?
我们新建一个main.py文件,如下图:
(图四)利用main进行代码调试
我们只要使用debug方法执行这个main.py,就会进入我们在对应的douban_book文件的断点中。
(图五)Debug执行main
到此,一个简单的Scrapy使用的“hello world”已经完成。接下来我会在这个“hello world”基础上去讲解XPath选择器的详细用法,items的设计,以及如何使用pipeline把item中的数据保存到Mysql数据库表中。