按照实现的技术和结构,网络爬虫可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等。在实际的网络爬虫中,通常是这几类爬虫的组合体。
1.通用网络爬虫
通用网络爬虫又叫作全网爬虫(Scalable Web Crawler),通用网络爬虫的爬行范围和数量巨大,正由于其爬取的数据是海量数据,所以对于爬行速度和存储空间要求较高。通用网络爬虫在爬行页面的顺序上要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,需要较长时间才可以刷新一次页面,所以存在一定的缺陷,这种网络爬虫主要应用于大型搜索引擎中,有非常高的应用价值。通用网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。
2.聚焦网络爬虫
聚焦网络爬虫(Focused Crawler)又叫作主题网络爬虫(Topical Crawler),是指按照预先定义好的主题,有选择地进行相关网页爬取的一种爬虫。和通用网络爬虫相比,它不会将目标资源定位在整个互联网中,而是将爬取的目标网页定位在与主题相关的页面中,极大地节省了硬件和网络资源,保存页面的速度也由于数量少而更快。聚焦网络爬虫主要应用在对特定信息的爬取,为某一类特定的人群提供服务。
3.增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler)对应着增量式更新。增量式更新指在更新的时候只更新改变的地方,而未改变的地方则不更新,所以,在爬取网页的时候,增量式网络爬虫只会在需要的时候爬取新产生或发生更新的页面,对于没有发生变化的页面,则不会爬取。这样可有效减少数据下载量,减小时间和空间上的耗费,但是在爬行算法上则需要增加一些难度。
4.深层网络爬虫
在互联网中,Web页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web)。表层网页指的是不需要提交表单,使用静态链接就可以直接访问的静态页面。深层网页指的是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后面的,需要用户提交一些关键词才能获得的Web页面。深层页面需要访问的信息数量是表层页面信息数量的几百倍,所以深层页面是主要的爬取对象。
深层网络爬虫主要由6个基本功能模块(爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS控制器)和两个爬虫内部数据结构(URL列表、LVS表)构成。其中LVS(Label Value Set)表示标签/数值集合,用来表示填充表单的数据源。