网络爬虫基础

网络爬虫

网络爬虫(Computer Robot)(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更常常的称为网页追逐者),是一种按照必定的规则,自动地抓取万维网信息的程序或者脚本。另一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫web

产生背景

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,做为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。可是,这些通用性搜索引擎也存在着必定的局限性,如:算法

(1) 不一样领域、不一样背景的用户每每具备不一样的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。数据库

(2)通用搜索引擎的目标是尽量大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。服务器

(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不一样数据大量出现,通用搜索引擎每每对这些信息含量密集且具备必定结构的数据无能为力,不能很好地发现和获取。网络

(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。app

网络爬虫机器学习

为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的连接,获取所须要的信息。与通用爬虫(general?purpose web crawler)不一样,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。分布式

1 聚焦爬虫工做原理以及关键技术概述工具

网络爬虫是一个自动提取网页的程序,它为搜索引擎从 万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,得到初始网页上的URL,在抓取网页的过程当中,不断从当前页面上抽 取新的URL放入队列,直到知足系统的必定中止条件。聚焦爬虫的工做流程较为复杂,须要根据必定的网页分析算法过滤与主题无关的连接,保留有用的连接并将 其放入等待抓取的URL队列。而后,它将根据必定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时中止。另 外,全部被爬虫抓取的网页将会被系统存贮,进行必定的分析、过滤,并创建索引,以便以后的查询和检索;对于聚焦爬虫来讲,这一过程所获得的分析结果还可能 对之后的抓取过程给出反馈和指导。学习

相对于通用网络爬虫,聚焦爬虫还须要解决三个主要问题:

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

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

(3) 对URL的搜索策略。

抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。

2 抓取目标描述

现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。

基于目标网页特征的爬虫所抓取、存储并索引的对象通常为网站或网页。根据种子样本获取方式可分为:

(1) 预先给定的初始抓取种子样本;

(2) 预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;

(3) 经过用户行为肯定的抓取目标样例,分为:

(a) 用户浏览过程当中显示标注的抓取样本;

(b) 经过用户日志挖掘获得访问模式及相关样本。

其中,网页特征能够是网页的内容特征,也能够是网页的连接结构特征,等等。

技术研究

基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据通常要符合必定的模式,或者能够转化或映射为目标数据模式。

另外一种描述方式是创建目标领域的本体或词典,用于从语义角度分析不一样特征在某一主题中的重要程度。

网页搜索策略

网页的抓取策略能够分为深度优先、广度优先和最佳优先三种。深度优先在不少状况下会致使爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。


广度优先搜索

广度优先搜索策 略是指在抓取过程当中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽量多的网页,通常使用广度优先搜索方 法。也有不少研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在必定连接距离内的网页具备主题相关性的几率很大。另一种方法是将 广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。


最佳优先搜索

最佳优先搜索策略按照必定的网页分析算法,预测候选URL与目标网页的相 似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问通过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径 上的不少相关网页可能被忽略,由于最佳优先策略是一种局部最优搜索算法。所以须要将最佳优先结合具体的应用进行改进,以跳出局部最优势。将在第4节中结合网页分析算法做具体的讨论。研究代表,这样的闭环调整能够将无关网页数量下降30%~90%。


深度优先搜索

深度优先搜索策略从起始网页开始,选择一个URL进入,分析这个网页中的URL,选择一个再进入。如此一个连接一个连接地抓取下去,直处处理完一条路线以后再处理下一条路线。深度优先策略设计较为简单。然而门户网站提供的连接每每最具价值,PageRank也 很高,但每深刻一层,网页价值和PageRank都会相应地有所降低。这暗示了重要网页一般距离种子较近,而过分深刻抓取到的网页却价值很低。同时,这种 策略抓取深度直接影响着抓取命中率以及抓取效率,对抓取深度是该种策略的关键。相对于其余两种策略而言。此种策略不多被使用。

网页分析算法

网页分析算法能够概括为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。


拓扑分析算法

基于网页之间的连接,经过已知的网页或数据,来对与其有直接或间接连接关系的对象(能够是网页或网站等)做出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。

1 网页(Webpage)粒度的分析算法

PageRank和HITS算法是最多见的连接分析算法,二者都是经过对网页间连接度的递归和 规范化计算,获得每一个网页的重要度评价。PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在,但忽略了绝大多数用户访问时带有目的 性,即网页和连接与查询主题的相关性。针对这个问题,HITS算法提出了两个关键的概念:权威型网页(authority)和中心型网页(hub)。

基于连接的抓取的问题是相关页面主题团之间的隧道现象,即不少在抓取路径 上偏离主题的网页也指向目标网页,局部评价策略中断了在当前路径上的抓取行为。文献[21]提出了一种基于反向连接(BackLink)的分层式上下文模 型(Context Model),用于描述指向目标网页必定物理跳数半径内的网页拓扑图的中心Layer0为目标网页,将网页依据指向目标网页的物理跳数进行层次划分,从外 层网页指向内层网页的连接称为反向连接。

2 网站粒度的分析算法

网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取的关键之处在于站点的划分和站点等级(SiteRank)的计算。SiteRank的计算方法与PageRank相似,可是须要对网站之间的连接做必定程度抽象,并在必定的模型下计算连接的权重。

网站划分状况分为按域名划分和按IP地址划分两种。文献[18]讨论了在分布式状况下,经过对同一个域名下不一样主机、 服务器的IP地址进行站点划分,构造站点图,利用相似PageRank的方法评价SiteRank。同时,根据不一样文件在各个站点上的分布状况,构造文档 图,结合SiteRank分布式计算获得DocRank。文献[18]证实,利用分布式的SiteRank计算,不只大大下降了单机站点的算法代价,并且 克服了单独站点对整个网络覆盖率有限的缺点。附带的一个优势是,常见PageRank 造假难以对SiteRank进行欺骗。

3 网页块粒度的分析算法

在一个页面中,每每含有多个指向其余页面的连接,这些连接中只有一部分是指向主题相关网页的,或根据网页的连接锚文本表 明其具备较高重要性。可是,在PageRank和HITS算法中,没有对这些连接做区分,所以经常给网页分析带来广告等噪声连接的干扰。在网页块级别 (Block?level)进行连接分析的算法的基本思想是经过VIPS网页分割算法将网页分为不一样的网页块(page block),而后对这些网页块创建page?to?block和block?to?page的连接矩阵,? 分别记为Z和X。因而,在page?to?page图上的网页块级别的PageRank为?W?p=X×Z;?在block?to?block图上的 BlockRank为?W?b=Z×X。已经有人实现了块级别的PageRank和HITS算法,并经过实验证实,效率和准确率都比传统的对应算法要好。


网页分析算法

基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页的内容从原来的以超文本为主,发展到后来动态页面(或 称为Hidden Web)数据为主,后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的400~500倍。另外一方面,多媒体数据、Web Service等各类网络资源形式也日益丰富。所以,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不一样,将基于网页内容的分析算法,概括如下三类:第一种针对以文本和超连接为主的无结构或结构很简单的网页;第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,具备较好的结构,显示遵循必定模式或风格,且能够直接访问。

基于文本的网页分析算法

1) 纯文本分类与聚类算法

很大程度上借用了文本检索的技术。文本分析算法能够快速有效的对网页进行分类和聚类,可是因为忽略了网页间和网页内部的结构信息,不多单独使用。

2) 超文本分类和聚类算法

根据网页连接网页的相关类型对网页进行分类,依靠相关联的网页推测该网页的类型。

相关文章
相关标签/搜索