网页内容抓取工具(网络爬虫程序的一些原理及关键技术的分析算法及概述)
优采云 发布时间: 2022-02-24 17:02网页内容抓取工具(网络爬虫程序的一些原理及关键技术的分析算法及概述)
重点介绍爬虫的工作原理和关键技术概述;爬取目标的描述;网络搜索策略:广度优先搜索策略、最佳搜索策略;网页分析算法:基于网络拓扑的分析算法
图 28138-1:
一篇关于网络爬虫程序纯技术的一些原理和架构的文章文章,有些地方可能不是很清楚,对于SEO行业,我经常和搜索引擎及其爬虫程序打交道。如果你知道你想知道什么,你可以通过搜索找到相关的解释,这对你的工作还是有帮助的(个人认为值得注意的地方已经用红色突出显示了)。文章比较长。我发两遍,可以转成PDF格式的文档阅读(懒得下的童鞋们可以自己下载下一篇文末文章)。
网络爬虫如何工作
1、聚焦爬虫工作原理及关键技术概述
网络爬虫是一种自动提取网页的程序。它从互联网上为搜索引擎下载网页,是搜索引擎的重要组成部分。传统爬虫从一个或多个初始网页的URL开始,获取初始网页上的URL。在爬取网页的过程中,不断地从当前页面中提取新的 URL 并放入队列中,直到满足系统的某个停止条件。焦点爬虫的工作流程比较复杂。它需要按照一定的网页分析算法过滤掉与主题无关的链接,保留有用的链接,并放入等待抓取的URL队列中。然后,它会根据一定的搜索策略从队列中选择下一个要爬取的网页URL,并重复上述过程,直到系统达到一定条件并停止。存储、执行一定的分析、过滤、建立索引,以供后续查询和检索;对于重点爬虫来说,这个过程中得到的分析结果也可以为后续的爬取过程提供反馈和指导。
与通用网络爬虫相比,聚焦爬虫还需要解决三个主要问题:
抓取目标的描述或定义;
网页或数据的分析和过滤;
URL 的搜索策略。
爬取目标的描述和定义是决定如何制定网页分析算法和URL搜索策略的基础。网页分析算法和候选URL排序算法是确定搜索引擎提供的服务形式和爬虫爬取行为的关键。这两部分的算法密切相关。
2、 爬取目标描述
现有的焦点爬虫对爬取目标的描述可以分为三种类型:基于目标网页的特征、基于目标数据模式和基于领域概念。
爬虫根据目标网页的特征爬取、存储和索引的对象一般为网站或网页。根据*敏*感*词*样品的获取方式,可分为:
预先给定的初始抓取*敏*感*词*样本;
预先给定的网页类别和类别对应的*敏*感*词*样本,例如 Yahoo! 分类结构等;
由用户行为确定的爬取目标样本分为:用户浏览时显示注释的爬取样本;通过用户日志挖掘获得访问模式和相关样本。
网页特征可以是网页的内容特征,也可以是网页的链接结构特征等。
基于目标数据模式的爬虫针对网页上的数据,抓取到的数据一般符合一定的模式,或者可以转化或映射成目标数据模式。
另一种描述方式是构建目标域的本体或字典,用于从语义角度分析主题中不同特征的重要性。
3、网页搜索政策
网页抓取策略可以分为三种类型:深度优先、广度优先和最佳优先。深度优先在很多情况下会导致爬虫被困的问题。目前,广度优先和最佳优先方法很常见。
3.1 广度优先搜索策略
广度优先搜索策略是指在爬取过程中,完成当前一级搜索后,再进行下一级搜索。该算法的设计和实现比较简单。目前,为了覆盖尽可能多的网页,一般采用广度优先搜索方式。也有许多研究将广度优先搜索策略应用于聚焦爬虫。其基本思想是距初始 URL 一定链接距离内的网页具有较高的主题相关性概率。另一种方法是将广度优先搜索与网页过滤技术相结合,首先使用广度优先策略抓取网页,然后过滤掉不相关的页面。这些方法的缺点是随着爬取的网页数量的增加,
3.2 最佳优先搜索策略
最佳优先级搜索策略是根据一定的网页分析算法预测候选URL与目标网页的相似度,或与主题的相关度,选择评价最好的一个或几个URL进行爬取。它只访问页面分析算法预测为“有用”的页面。一个问题是爬虫爬取路径上的许多相关网页可能会被忽略,因为最佳优先策略是局部最优搜索算法。因此,需要将最佳优先级与具体应用结合起来进行改进,从而跳出局部最优点。在第 4 节中,将结合网页分析算法进行详细讨论。
4、网页分析算法
网页分析算法可以分为三类:基于网络拓扑、基于网页内容和基于用户访问行为。
4.1 基于网络拓扑的分析算法
基于网页之间的链接,通过已知的网页或数据,评估与其有直接或间接链接关系的对象(可以是网页或网站等)的算法。进一步分为三种:网页粒度、网站粒度和网页块粒度。
4.1.1 网页粒度分析算法
PageRank 和 HITS 算法是最常见的链接分析算法。两者都是通过网页间链接度的递归归一化计算得到每个网页的重要性。PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在性,但忽略了大部分用户访问的目的性,即网页和查询主题链接的相关性。针对这个问题,HITS算法提出了两个关键概念:权威网页(authority)和中心网页(hub)。
基于链接的爬取问题是相关页面的主题组之间存在隧道现象,即爬取路径上很多偏离主题的页面也指向目标页面,局部评价策略中断了爬取行为当前路径。一些文献提出了一种基于反向链接(BackLink)的层次上下文模型(ContextModel),用于将目标网页一定物理跳半径内的网页拓扑图的中心Layer0描述为目标网页。目标网页的物理跳数分层,从外层网页到内层网页的链接称为反向链接。
4.1.2网站粒度分析算法
网站粒度资源发现和管理策略也比网页粒度更简单有效。网站粒度爬取的关键是站点的划分和站点排名(SiteRank)的计算。SiteRank的计算方法和PageRank类似,但是网站之间的链接需要做一定的调整。抽象,并计算特定模型下链接的权重。
网站划分分为两种:按域名划分和按IP地址划分。有文献讨论在分布式情况下,通过将站点除以同一域名下不同主机和服务器的IP地址,构建站点地图,并采用类似于PageRank的方法来评估SiteRank。同时,根据每个站点不同文件的分布情况,构建文档图,结合SiteRank分布式计算得到DocRank。使用分布式SiteRank计算,不仅大大降低了单个站点的算法成本,而且克服了单个站点对全网覆盖范围有限的缺点。一个额外的好处是,常见的 PageRank 欺诈很难欺骗 SiteRank。
4.1.3 网页块粒度分析算法
一个页面往往收录多个指向其他页面的链接,而这些链接中只有一部分指向与主题相关的网页,或者根据网页的链接锚文本表明其重要性高。但是在PageRank和HITS算法中,这些链接是没有区分的,所以往往会给网页分析带来广告等噪声链接的干扰。页面块级(Blocklevel)的链接分析算法的基本思想是通过VIPS网页切分算法将网页划分为不同的页面块(pageblocks),然后建立pagetoblock和blocktopage的链接矩阵对于这些页块,分别表示为 Z。X。因此,pagetopage图上的page block level的PageRank为W(p)=X×Z;块到块图上的 BlockRank 是 W(b)=Z×X。
4.2 基于网页内容的网页分析算法
基于网页内容的分析算法是指利用网页内容的特征(文本、数据等资源)对网页进行评价。网页内容已经从基于超文本的内容演变为动态页面(或称为HiddenWeb)数据,后者的数据量约为直接可见页面数据(PIW,PubliclyIndexableWeb)的400到500倍。另一方面,多媒体数据、WebService等各种形式的网络资源日益丰富。因此,基于网页内容的分析算法也从最初的相对简单的文本检索方法发展到综合应用包括网页数据提取、机器学习、数据挖掘、语义理解等多种方法。本节根据网页数据的不同形式,
对于以文本和超链接为主的非结构化或非常简单的网页;
对于结构化数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;
目标数据介于第一类和第二类数据之间,具有较好的结构,以一定的模式或风格展示,可以直接访问。