[Python 实战] - No.1 爬虫基本结构讲解

最近的一个项目需要用到爬虫爬取微博博文,所以特地学习了一下python 爬虫。特此记录,以方便日后再次用到,在这里我只记录爬虫相关结构介绍,图片来源自imooc python爬虫课程

1. 爬虫基本架构:

[Python 实战] - No.1 爬虫基本结构讲解

爬虫最重要的三个部分就是URL管理器、网页下载器、和网页解析器。其作用分别为:

1. URL管理器:主要是用于储存爬虫程序对应的URL。对于最新得到的URL,维护一个容器,储存所有未被爬取过的URL;同时,维护一个容器存储所有已经爬取过的URL。为什么要存储已经爬取过得URL呢?在我们爬取的过程中,可能会存在一些网页是互相跳转的,所以可能会形成一些循环。因此,在我们添加一个新的URL时,如果这URL出现在未被爬取的、或者已经被爬取的URL容器中,我们忽略这个URL,不予添加。

2. 网页下载器:每次从URL管理器中获取一个URL,然后使用相应方法下载该网页内容。在这里我们使用urllib2下载。方法有以下几种:

1). urllib2直接下载:

[Python 实战] - No.1 爬虫基本结构讲解

2). urllib2伪装浏览器发送请求:

[Python 实战] - No.1 爬虫基本结构讲解

[Python 实战] - No.1 爬虫基本结构讲解

3). urllib2对应特殊场景(代理、HTTPS、HTTP重定向)

[Python 实战] - No.1 爬虫基本结构讲解

[Python 实战] - No.1 爬虫基本结构讲解

3). 网页解析器

[Python 实战] - No.1 爬虫基本结构讲解[Python 实战] - No.1 爬虫基本结构讲解

网页解析可以分为使用正则表达式进行模糊匹配以及使用结构化解析。这两种方法都有对应的python库来实现,可以使用etree以及Beautiful Soup进行匹配。在这里提供Beautiful Soup4的文档地址。etree 对应的方法也可以在百度上查阅到,这里不再赘述。具体爬虫例子传送门


P.S.文章不妥之处还望指正