编辑: 牛牛小龙人 | 2012-12-15 |
1 爬虫的定义 网络爬虫是一种按照一定的规则自动地抓取网络信息的程序或者脚本.简单来说,网络爬虫 就是根据一定的算法实现编程开发,主要通过 URL 实现数据的抓取和发掘. 随着大数据时代的发展,数据规模越来越庞大,数据类型繁多,但是数据价值普遍较低.为 了从庞大的数据体系里获取有价值的数据,从而延伸了网络爬虫、数据分析等多个职位.近几年, 网络爬虫的需求更是井喷式地爆发, 在招聘的供求市场上往往是供不应求, 造成这个现状的主要原 因就是求职者的专业水平低于需求企业的要求. 传统的爬虫有百度、Google、必应等搜索引擎,这类通用的搜索引擎都有自己的核心算法. 但是,通用的搜索引擎存在着一定的局限性: (1)不同的搜索引擎对于同一个搜索会有不同的结果,搜索出来的结果未必是用户需要的信 息. (2)通用的搜索引擎扩大了网络覆盖率,但有限的搜索引擎服务器资源与无限的网络数据资 源之间的矛盾将进一步加深. (3)随着网络上数据形式繁多和网络技术的不断发展,图片、数据库、音频、视频多媒体等 不同数据大量出现, 通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力, 不能 很好地发现和获取. 因此,为了得到准确的数据,定向抓取相关网页资源的聚焦爬虫应运而生.聚焦爬虫是一个 自动下载网页的程序,可根据设定的抓取目标有目的性地访问互联网上的网页与相关的 URL,从 而获取所需要的信息.与通用爬虫不同,聚焦爬虫并不追求全面的覆盖率,而是抓取与某一特定内 容相关的网页,为面向特定的用户提供准备数据资源.
2 | 实战 Python 网络爬虫 1.2 爬虫的类型 网络爬虫根据系统结构和开发技术大致可以分为
4 种类型:通用网络爬虫、聚焦网络爬虫、 增量式网络爬虫和深层网络爬虫. 通用网络爬虫又称全网爬虫,常见的有百度、Google、必应等搜索引擎,爬行对象从一些初 始URL 扩充到整个网站,主要为门户站点搜索引擎和大型网站服务采集数据,具有以下特点: (1)由于商业原因,引擎的算法是不会对外公布的. (2)这类网络爬虫的爬取范围和数量巨大,对于爬取速度和存储空间要求较高,爬取页面的 顺序要求相对较低. (3)待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面. (4)存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的需求. 聚焦网络爬虫又称主题网络爬虫,是选择性地爬取根据需求的主题相关页面的网络爬虫.与 通用网络爬虫相比,聚焦爬虫只需要爬取与主题相关的页面,不需要广泛地覆盖无关的网页,很好 地满足一些特定人群对特定领域信息的需求. 增量式网络爬虫是指对已下载网页采取增量式更新和只爬取新产生或者已经发生变化的网页 的爬虫, 它能够在一定程度上保证所爬取的页面尽可能是新的页面. 只会在需要的时候爬取新产生 或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬 取的网页,减小时间和空间上的耗费,但是增加了爬取算法的复杂度和实现难度,基本上这类爬虫 在实际开发中不太普及. 深层网络爬虫是大部分内容不能通过静态 URL 获取的、隐藏在搜索表单后的、只有用户提交 一些关键词才能获得的网络页面. 例如某些网站需要用户登录或者通过提交表单实现提交数据. 这 类爬虫也是本书讲述的重点之一. 实际上,聚焦网络爬虫、增量式网络爬虫和深层网络爬虫可以通俗地归纳为一类,因为这类 爬虫都是定向爬取数据.相比于通用爬虫,这类爬虫比较有目的性,也就是网络上经常说的网络爬 虫,而通用爬虫在网络上通常称为搜索引擎. 1.3 爬虫的原理 通用网络爬虫的实现原理及过程如图 1-1 所示. 第1章理解网络爬虫 |