网络爬虫 ── 专业、强大的万维网资源定向抓取、爬抓工具 网络爬虫 又称网页蜘蛛、网络机器人、在 FOAF 社区常称网页追逐者。网络爬虫 是一种按照一定规则,自动抓取万维网信息的程序或脚本。另外一些不常使用名称还有蚂蚁、自动索引、模拟程序或蠕虫。 随着网络的迅速发展,万维网成为大量信息的载体,如何有效提取并利用这些信息成为一个巨大挑战。搜索引擎 (Search Engine),譬如:传统搜索引擎 AltaVista、Yahoo!、Google、百度、360 搜索、好搜、搜狗、Bing 等作为辅助人们检索信息的工具,已成为用户访问万维网的入口和指南。但是,这些通用搜索引擎也存在一定局限性。譬如: 01、不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心网页; 02、通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深; 03、万维网数据形式丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取; 04、通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。 为解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关链接,获取所需要的信息。与通用爬虫 (general purpose web crawler) 不同,聚焦爬虫并不追求大的覆盖率,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的 URL 开始,获得初始网页上的 URL,在抓取网页的过程中,不断从当前页面提取新 URL 放入队列,直到满足系统的一定停止条件。 聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的 URL 队列。然后,再根据一定的搜索策略从队列中选择下一步要抓取的网页 URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对通用网络爬虫,聚焦爬虫还需解决 3 个主要问题: 01、对抓取目标的描述或定义; 02、对网页或数据的分析与过滤; 03、针对 URL 的搜索策略。 抓取目标的描述和定义是决定网页分析算法与 URL 搜索策略如何制订的基础。而网页分析算法和候选 URL 排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。 抓取目标描述 现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式、基于领域概念 3 种。 一、基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为: 01、预先给定的初始抓取种子样本; 02、预先给定的网页分类目录和与分类目录对应的种子样本,如 Yahoo! 分类结构等; 03、通过用户行为确定的抓取目标样例,譬如: a) 用户浏览过程中显示标注的抓取样本; b) 通过用户日志挖掘得到访问模式及相关样本。 其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。 二、基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合一定的模式,或者可以转化或映射为目标数据模式。 三、另一种描述方式是建立目标领域的本体或词典,用于从语义角度分析不同特征在某一主题中的重要程度。 网页抓取策略可分为:深度优先、广度优先、最佳优先 3 种。深度优先在很多情况下会导致爬虫陷入 (trapped) 问题,目前常见的是广度优先和最佳优先方法。 01、广度优先搜索 广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。 该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始 URL 在一定链接距离内的网页具有主题相关性的概率很大。 另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。 02、最佳优先搜索 最佳优先搜索策略按照一定的网页分析算法,预测候选 URL 与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个 URL 进行抓取。最佳优先搜索只访问经过网页分析算法预测为 “有用” 的网页。 存在的问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出此局限。研究表明,这样的闭环调整可将无关网页数量降低 30%~90%。 03、深度优先搜索 深度优先搜索策略从起始网页开始,选择一个 URL 进入,分析这个网页中的 URL,选择一个再进入。如此一个链接一个链接地抓取下去,直到处理完一条路线之后再处理下一条路线。深度优先策略设计较为简单。 然而门户网站提供的链接往往最具价值,Page Rank 也很高,但每深入一层,网页价值和 Page Rank 都会相应地有所下降。这暗示了重要网页通常距离种子较近,而过度深入抓取到的网页却价值很低。同时,这种策略抓取深度直接影响着抓取命中率以及抓取效率,对抓取深度是该种策略的关键。相对于其他两种策略而言。此种策略很少被使用。 网页分析算法可以归纳为:基于网络拓扑、基于网页内容、基于用户访问行为 3 种类型。 01、拓扑分析算法 基于网页间链接,通过已知网页或数据,来对与其有直接或间接链接关系的对象(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度、网页块粒度 3 种。 a) 网页 (Webpage) 粒度分析算法 Page Rank 和 HITS 算法是最常见的链接分析算法,两者都是通过对网页间链接度的递归和规范化计算,得到每个网页的重要度评价。Page Rank 算法虽然考虑了用户访问行为的随机性和 Sink 网页的存在,但忽略了绝大多数用户访问时带有目的性,即网页和链接与查询主题的相关性。针对这个问题,HITS 算法提出了 2 个关键概念:权威型网页(authority)和中心型网页(hub)。 基于链接的抓取的问题是相关页面主题团之间的隧道现象,即很多在抓取路径上偏离主题的网页也指向目标网页,局部评价策略中断了在当前路径上的抓取行为。因此,有人提出了一种基于反向链接(BackLink)的分层式上下文模型(Context Model),用于描述指向目标网页一定物理跳数半径内的网页拓扑图的中心 Layer0 为目标网页,将网页依据指向目标网页的物理跳数进行层次划分,从外层网页指向内层网页的链接称为反向链接。 b) 网站粒度分析算法 网站粒度的资源发现和管理策略比网页粒度要更简单有效。网站粒度爬虫抓取的关键之处在于站点的划分和站点等级 (Site Rank) 的计算。Site Rank 的计算方法与 Page Rank 类似,但是需对网站之间的链接作一定程度抽象,并在一定的模型下计算链接权重。 网站划分情况分为:按域名划分和按 IP 地址划分 2 种。在分布式情况下,通过对同一域名下不同主机、 服务器 IP 地址进行站点划分,构造站点图,利用类似 Page Rank 的方法评价 Site Rank。同时,根据不同文件在各个站点上的分布情况,构造文档图,结合 Site Rank 分布式计算得到 Doc Rank。利用分布式 Site Rank 计算,不仅大大降低了单机站点的算法代价,而且克服了单独站点对整个网络覆盖率有限的缺点。附带的一个优点是,常见 Page Rank 造假难以对 Site Rank 进行欺骗。 c) 网页块粒度分析算法 在一个页面中,往往含有多个指向其他页面的链接,这些链接中只有一部分是指向主题相关网页的,或根据网页的链接锚文本表明其具有较高重要性。但是,在 Page Rank 和 HITS 算法中,没有对这些链接作区分,因此常常给网页分析带来广告等噪声链接的干扰。 在网页块级别 (Block level) 进行链接分析的算法的基本思想是通过 VIPS 网页分割算法将网页分为不同的网页块 (page block),然后对这些网页块建立 page to block 和 block to page 的链接矩阵。已经有人实现了块级别的 Page Rank 和 HITS 算法,并通过实验证明,效率和准确率都比传统的对应算法要好。 02、网页分析算法 基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页内容从原来的以超文本为主,发展到后来动态页面(或称为 Hidden Web)数据为主,后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的 400~500 倍。 另一方面,多媒体数据、Web Service 等各种网络资源形式也日益丰富。因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。根据网页数据形式的不同,基于网页内容的分析算法可归纳为以下 3 类: a) 针对以文本和超链接为主的无结构或结构很简单的网页; b) 针对从结构化的数据源(如 RDBMS)动态生成的页面,其数据不能直接批量访问; c) 针对的数据界于 a) 和 b) \数据之间,具有较好结构,显示遵循一定模式或风格,且可以直接访问。 03、基于文本的网页分析算法 a) 纯文本分类与聚类算法 很大程度上借用了文本检索技术。文本分析算法可快速有效的对网页进行分类和聚类,但由于忽略了网页间和网页内部的结构信息,很少单独使用。 b) 超文本分类和聚类算法 根据网页链接网页的相关类型对网页进行分类,依靠相关联的网页推测该网页的类型。 本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。 |