网络爬虫按照系统结构和实现技术,常见的主要有以下四类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫和深层网络爬虫。
实际的网络爬虫系统通常是由几种爬虫类型相交叉结合实现的。
1. 通用网络爬虫
概念 | 爬取目标资源在全互联网中,爬取目标数量巨大。 |
性能要求 | 非常高。 |
应用场景 | 大型搜索引擎,有非常高的应用价值。 |
组成 | 由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。 |
爬行策略 | 主要有深度优先爬行策略和广度优先爬行策略。 |
2. 聚焦网络爬虫
概念 | 将爬取目标定位在与主题相关的页面中,对特定信息进行爬取。 |
性能要求 | - |
应用场景 | 主要应用在特定的信息爬出中,为某一特定的人群提供服务。 |
组成 |
初始URL、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块。 |
爬行策略 | 基于内容评价的爬行策略、基于链接评价的爬行策略、基于增强学习的爬行策略和基于与语境图的爬行策略。 |
3. 增量式网络爬虫
概念 | 对已下载的网页采取增量式更新和只爬行新产生的或已经发生变化的网盘爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。 |
性能要求 | - |
特点 | 需要爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面。可以有效减少数据下载量、及时更新已爬行的网页,减少时间和空间的耗费,但增加了爬行算法的复杂度和实现难度。 |
应用场景 | 初次爬行完成后,不断及时更新页面 |
组成 | 爬行模块、排序模块、更新模块、本地页面集、待爬行URL集及本地URL集。 |
爬行策略 | - |
常用方法 | 统一更新法、个体更新法、基于分类更新法。 |
- 统一更新法:爬虫以相同的频率访问所有的网页,不考虑网页的改变频率。
- 个体更新法:爬虫根据个体网页的改变频率来重新访问各个页面。
- 基于分类的更新法:爬虫根据网页改变频率将其分为更新较快网页子集和更新较慢网页子集两类,然后以不同频率范围这两类网页。
4. 深层网络爬虫
概念 | 可以爬取互联网中的深层页面。(最重要的部分为填写表单部分) |
性能要求 | - |
应用场景 | 大多数网页 |
组成 | URL列表、LVS列表(LVS指的是标签/数值集合,即填充表单的数据源)、爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器。 |
爬行策略 | - |
表单填写类型 | 领域知识表单填写、网页结构分析表单填写 |
4.1 互联网中的网页存在方式
在互联网中,网页按照存在方式分类,可以分为表层页面和深层页面。
- 表层页面:不需要提交表单,使用静态的链接就能够到达的静态页面。
- 深层页面:隐藏在表单后面,不能够通过静态链接直接获取,需要提供一定的关键词后才能获取到的页面。
在互联网中,深层数量的页面往往比表层页面的数量多很多。
4.2 深层网络爬虫的表单填写类型
深层网络爬虫的表单填写类型有两种。
- 基于领域知识的表单填写。简单地说,就是里一个填写表单的关键词库,在需要填写时,根据语义分析选择对应的关键词库进行填写。
- 基于网页结构的表单填写。简单地说,这种填写方式一般在领域知识有限的情况下使用,这种方式会根据网页结构进行分析,并自动进行表单填写。