从网页抓取数据(聚焦爬虫工作原理及关键技术的工作流程及应用)

优采云 发布时间: 2022-02-07 19:20

  从网页抓取数据(聚焦爬虫工作原理及关键技术的工作流程及应用)

  1 重点介绍爬虫的工作原理及关键技术概述

  网络爬虫是一种自动提取网页的程序。它从互联网上为搜索引擎下载网页,是搜索引擎的重要组成部分。

  传统爬虫从一个或多个初始网页的URL开始,获取初始网页上的URL。在抓取网页的过程中,

  不断地从当前页面中提取新的 URL 并放入队列中,直到满足系统的某个停止条件。

  焦点爬虫的工作流程比较复杂,需要按照一定的网页分析算法过滤掉与主题无关的链接。

  保留有用的链接并将它们放入等待抓取的 URL 队列中。然后,它会根据一定的搜索策略从队列中选择下一个要抓取的网页URL,

  并重复上述过程,直到达到系统的某个条件,此外,爬虫爬取的所有网页都会被系统存储,

  为后续的查询和检索进行一定的分析、过滤和索引;

  对于重点爬虫来说,这个过程中得到的分析结果也可以为后续的爬取过程提供反馈和指导。

  与通用网络爬虫相比,聚焦爬虫还需要解决三个主要问题:

  (1)爬取目标的描述或定义;

  (2)网页或数据的分析和过滤;

  (3)URL 的搜索策略。

  爬取目标的描述和定义是决定如何制定网页分析算法和URL搜索策略的基础。

  网页分析算法和候选URL排序算法是确定搜索引擎提供的服务形式和爬虫爬取行为的关键。

  这两部分的算法密切相关。

  爬取目标描述

  现有的焦点爬虫对爬取目标的描述可以分为三种类型:基于目标网页的特征、基于目标数据模式和基于领域概念。

  爬虫根据目标网页的特征爬取、存储和索引的对象一般为网站或网页。根据*敏*感*词*样品的获取方式,可分为:

  (1)预先给定的初始抓取*敏*感*词*样本;

  (2)预先给定的网页类别和类别对应的*敏*感*词*样本,如Yahoo!类别结构等;

  (3) 由用户行为决定的抓取目标示例分为:

  a) 在用户浏览过程中显示标记的抓取样本;

  b) 通过用户日志挖掘获取访问模式和相关样本。

  网页特征可以是网页的内容特征,也可以是网页的链接结构特征等。

  现有的焦点爬虫对爬取目标的描述或定义可以分为三种类型:基于目标网页的特征、基于目标数据模式和基于领域概念。

  爬虫根据目标网页的特征爬取、存储和索引的对象一般为网站或网页。

  具体方法可分为:

  (1)预先给定的初始抓取*敏*感*词*样本;

  (2)预先给定的网页类别和类别对应的*敏*感*词*样本,如Yahoo!类别结构等;

  (3)由用户行为决定的爬取目标样本。其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征等。

  基于目标数据模式的爬虫针对网页上的数据,抓取到的数据一般符合一定的模式,或者可以转化或映射成目标数据模式。

  另一种描述方式是构建目标域的本体或字典,用于从语义角度分析主题中不同特征的重要性。

  3 网络搜索策略

  网页抓取策略可以分为三种类型:深度优先、广度优先和最佳优先。

  深度优先在很多情况下会导致爬虫被困的问题。目前,广度优先和最佳优先方法很常见。

  3.1广度优先搜索策略

  广度优先搜索策略是指在爬取过程中,完成当前一级搜索后,再进行下一级搜索。

  该算法的设计和实现比较简单。目前,为了覆盖尽可能多的网页,一般采用广度优先搜索方式。也有许多研究将广度优先搜索策略应用于聚焦爬虫。

  其基本思想是距初始 URL 一定链接距离内的网页具有较高的主题相关性概率。

  另一种方法是将广度优先搜索与网页过滤技术相结合,首先使用广度优先策略抓取网页,然后过滤掉不相关的页面。

  这些方法的缺点是随着爬取的网页数量的增加,会下载和过滤大量不相关的网页,算法的效率会变低。

  3.2 最佳优先搜索策略

  最佳优先级搜索策略是根据一定的网页分析算法预测候选URL与目标网页的相似度,或与主题的相关度,选择评价最好的一个或几个URL进行爬取。

  它只访问页面分析算法预测为“有用”的页面。一个问题是爬虫爬取路径上的很多相关网页可能会被忽略,

  因为最好的第一策略是局部最优搜索算法。因此,需要将最佳优先级与具体应用结合起来进行改进,从而跳出局部最优点。

  在第 4 节中,将结合网页分析算法进行详细讨论。研究表明,这样的闭环调整可以将不相关页面的数量减少 30% 到 90%。

  4 网页分析算法

  网页分析算法可以分为三类:基于网络拓扑、基于网页内容和基于用户访问行为。

  4.1 基于网络拓扑的分析算法

  基于网页之间的链接,通过已知的网页或数据,评估与其有直接或间接链接关系的对象(可以是网页或网站等)的算法。

  进一步分为三种:网页粒度、网站粒度和网页块粒度。

  4.1.1 网页粒度分析算法

  PageRank 和 HITS 算法是最常见的链接分析算法。两者都是通过网页间链接度的递归归一化计算得到每个网页的重要性。

  PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在性,但忽略了大部分用户访问的目的性,即网页和查询主题链接的相关性。

  针对这个问题,HITS算法提出了两个关键概念:权威网页(authority)和中心网页(hub)。

  链接爬取的问题是相关页面的主题组之间存在隧道现象,即爬取路径上很多离题的页面也指向了目标页面,

  局部评估策略中断当前路径上的抓取行为。参考文献[21]提出了一种基于反向链接(BackLink)的分层上下文模型(ContextModel),

  用于描述网页在指向目标网页的物理跳数一定半径内的拓扑图。中间的Layer0是目标网页,网页根据指向目标网页的物理跳数进行分层。

  从外部网页到内部网页的链接称为反向链接。

  4.1.2网站粒度分析算法

  网站粒度资源发现和管理策略也比网页粒度更简单有效。网站粒度爬取的关键是站点的划分和SiteRank的计算。

  SiteRank的计算方法与PageRank类似,但需要对网站之间的链接进行一定程度的抽象,并在一定模型下计算链接的权重。

  网站划分分为两种:按域名划分和按IP地址划分。参考文献[18]讨论了在分布式情况下,通过划分同一域名下不同主机和服务器的IP地址,

  使用类似于 PageRank 的方法构建站点地图并评估 SiteRank。同时根据每个站点不同文件的分布情况,构建文档图,

  DocRank是结合SiteRank分布式计算得到的。参考文献[18]证明使用分布式SiteRank计算不仅大大降低了单机站点的算法成本,而且

  此*敏*感*词*有限的缺点。一个额外的好处是,常见的 PageRank 欺诈很难欺骗 SiteRank。

  4.1.3 网页块粒度分析算法

  一个页面往往收录多个指向其他页面的链接,而这些链接中只有一部分指向与主题相关的网页,或者根据网页的链接锚文本表明其重要性高。

  但是在PageRank和HITS算法中,这些链接是没有区分的,所以往往会给网页分析带来广告等噪声链接的干扰。

  页面块级(Block?级)链接分析算法的基本思想是通过VIPS页面切分算法将页面划分为不同的页面块(pageblock)。

  然后,为这些网页块建立page?to?block和block?to?page的链接矩阵,并且? 分别表示为 Z 和 X。然后,

  page-to-page图上page block级别的PageRank是?W?p=X×Z;?

  块到块图上的 BlockRank 是 ?W?b=Z×X。?

  有人实现了块级PageRank和HITS算法,实验证明效率和准确率优于传统的对应算法。

  4.2 基于网页内容的网页分析算法

  基于网页内容的分析算法是指利用网页内容的特征(文本、数据等资源)对网页进行评价。网页内容主要是来自原文的超文本,

  后来,动态页面(或称为HiddenWeb)的数据占主导地位,后者的数据量大约是直接可见页面数据(PIW,PubliclyIndexableWeb)的400到500倍。

  另一方面,多媒体数据、WebService等各种形式的网络资源日益丰富。因此,基于网页内容的分析算法也是从原来比较简单的文本检索方法,

  它已发展成为涵盖网页数据提取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据的不同形式,

  基于网页内容的分析算法分为以下三类:第一类是针对以文本和超链接为主的非结构化或非常简单的网页;

  二是针对结构化数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;

  第三类目标数据介于第一类和第二类数据之间,结构更好,表明它遵循一定的模式或风格,可以直接访问。这个文章是按集合整理的,地址是:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线