程序猿圈流传着一个神话级别的事:全公司仅靠1个人,每年就能转上1400多万美元。听起来天方夜谭一样,那他是如何做到的呢?看报道就会发现,他利用的是爬虫技术。
随着互联网的发展,从海量的互联网数据中,爬取特定的数据用以分析,成为很多企业的基本需求,爬虫产业自然蓬勃发展,HTTP代理作为能有效助力爬虫获取数据的工具,也被人所熟知并运用,这样一来,我们就能使用大量的HTTP代理,进行爬虫作业,采用合理的爬虫策略,即可有效解决反爬问题。
而网络爬虫的抓取策略按照系统结构和实现技术,可以分为这4种:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。
1.增量式网络爬虫
是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。
和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。
2.通用网络爬虫
又称全网爬虫,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。
通用网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面,虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。
3.聚焦网络爬虫
又称主题网络爬虫,是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。
聚焦网络爬虫和通用网络爬虫相比,增加了链接评价模块以及内容评价模块。
聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方法计算出的重要性不同,由此导致链接的访问顺序也不同。
4.Deep Web 爬虫
Web 按存在方式可以分为表层网页和深层网页。
表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,即深层网页爬虫。只有用户提交一些关键词才能获得的 Web 页面,Deep Web 中可访问信息容量是表层网页的几百倍,是互联网上最大、发展最快的新型信息资源。
Deep Web 爬虫爬行过程中最重要部分就是表单填写,包含两种类型:
(1)基于领域知识的表单填写:此方法一般会维持一个本体库,通过语义分析来选取合适的关键词填写表单。
(2)基于网页结构分析的表单填写: 此方法一般无领域知识或仅有有限的领域知识,将网页表单表示成 DOM 树,从中提取表单各字段值。