网络爬虫又称为网页蜘蛛、网络机器人,通俗来讲,网络爬虫就是一段程序,通过这段程序可以在网站上获取需要的信息,如文字、视频、图片等。此外,网络爬虫还有些不常用的名称,如蚂蚁、自动索引、模拟程序或蠕虫等。
爬虫的设计思路如下。
(1)明确需要爬取的网页的URL地址。
(2)通过HTTP请求来获取对应的HTML页面。
(3)提取HTML中的内容。这里有两种情况:如果是有用的数据,就保存起来;如果是需要继续爬取的页面,就重新指定第(2)步。
为了更方便地理解爬虫,下面介绍大数据时代获取数据的方式。
随着社会的高速发展,科技发达,信息畅通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。那么在大数据时代,获取数据的方式有哪些?
(1)企业产生的数据:百度搜索指数、腾讯公司业绩数据、阿里巴巴集团财务及运营数据、新浪微博微指数等。
(2)数据平台购买的数据:数据平台包括数据堂、国云数据市场、贵阳大数据交易所等。
(3)政府/机构公开的数据:国家统计局数据、中国人民银行调查统计司统计数据、世界银行公开数据、联合国数据库、纳斯达克综合指数、新浪美股实时行情等。这些数据通常都是由各地政府统计上报,或者由行业内专业的网站、机构等提供。
(4)数据管理咨询公司的数据:麦肯锡、埃森哲、尼尔森、中国互联网络信息中心、艾瑞咨询等数据管理咨询公司,通常拥有庞大的数据团队,一般通过市场调研、问卷调查、固定的样本检测、与各行各业的公司合作、专家对话来获取数据,并根据客户需求制定商业解决方案。
(5)爬取网络数据:如果数据市场上没有需要的数据,或者价格太高不愿意购买,那么可以利用爬虫技术,获取网站上的数据。
第5种方式就是本书要重点介绍的内容。
爬虫有很多种类型,根据使用场景的不同,可以将爬虫分为通用爬虫和聚焦爬虫两种。
随着网络技术的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎的核心就是通用爬虫,例如,传统的通用搜索引擎谷歌、百度等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
通用爬虫是搜索引擎爬取系统的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
通用爬虫是从互联网中搜集网页、采集信息。采集的网页信息可以为搜索引擎建立索引提供支持,它决定着整个引擎系统的内容是否丰富,信息是否及时,因此其性能的优劣直接影响着搜索引擎的效果。搜索引擎网络爬虫的基本工作流程如下。
(1)爬取网页。
如图1-1所示,取一部分种子URL,将这些种子放入待爬取URL队列。取出待爬取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储到已下载的网页库中,再将这些URL放入已爬取的URL队列。分析已爬取的URL队列中的URL,分析其中的其他URL,并且将其中需要继续爬取的URL放入待爬取的URL队列,从而进入下一个循环。
图1-1 搜索引擎网络爬虫的基本工作流程
在图1-1中,搜索引擎获取新网站的URL,是输入了一定的规则,如标注为nofollow的链接或Robots协议。
提示
Robots协议也称为爬虫协议、机器人协议等,其全称为网络爬虫排除标准(Robots Exclusion Protocol)。网站通过Robots协议告诉搜索引擎哪些页面可以爬取,哪些页面不能爬取,例如,淘宝网:https://www.taobao.com/robots.txt,腾讯网:http://www.qq.com/robots.txt。
(2)数据存储。
搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是一致的。搜索引擎网络爬虫在爬取页面的同时,也做重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或复制的内容,就有可能不再继续爬行。
(3)预处理。
搜索引擎将爬虫爬取的页面进行预处理,如提取文字、中文分词、索引处理等。
除HTML文件外,搜索引擎通常还能爬取和索引以文字为基础的多种文件类型,如PDF、Word、WPS、XLS、PPT、TXT文件等。
(4)提供检索服务,网站排名。
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,Rank值高的网站在搜索结果中会排名较前。
通用爬虫虽然功能很强大,但是也存在一定的局限性。
(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
(2)通用搜索引擎的目标是尽可能地扩大网络覆盖范围,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
(3)网络技术的不断发展,万维网数据形式越来越丰富,如图片、数据库、音频、视频等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很快地发现和获取。
(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为了解决通用爬虫的局限性,定向爬取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的爬取目标,有选择地访问万维网上的网页与相关的链接,获取所需信息。与通用爬虫不同的是,聚焦爬虫并不追求大的覆盖范围,而将目标定为爬取与某一特定主题内容相关的网页,为面向主题的用户查询获取数据资源。
提示
第2~21章介绍的网络爬虫,就是聚焦爬虫。