分享

爬虫课程(七)|豆瓣:使用PyCharm+Scrapy爬取豆瓣读书书籍信息示例

 小原渚哥哥 2022-01-01

从现在开始,我们将进入实战阶段,本课程主要知识点包括三个:

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数据库表中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多