`

聚焦爬虫工作原理

阅读更多
1 聚焦爬虫工作原理及关键技术概述 
       网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 

      相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: 
      (1) 对抓取目标的描述或定义; 
      (2) 对网页或数据的分析与过滤;
      (3) 对URL的搜索策略。 
     抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。 

      2 抓取目标描述 
      现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。 
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为: 
(1) 预先给定的初始抓取种子样本; 
(2) 预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等; 
(3) 通过用户行为确定的抓取目标样例,分为: 
a) 用户浏览过程中显示标注的抓取样本; 
b) 通过用户日志挖掘得到访问模式及相关样本。 
其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。 
现有的聚焦爬虫对抓取目标的描述或定义可以分为基于目标网页特征,基于目标数据模式和基于领域概念三种。 
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。具体的方法根据种子样本的获取方式可以分为:(1)预先给定的初始抓取种子样本;(2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;(3)通过用户行为确定的抓取目标样例。其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。 

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

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

      3 网页搜索策略 
      网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。 
      3.1 广度优先搜索策略 
广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。 

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

      4 网页分析算法 

      网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。 
4.1 基于网络拓扑的分析算法 
基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对象(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。 
4.1.1 网页(Webpage)粒度的分析算法 
PageRank和HITS算法是最常见的链接分析算法,两者都是通过对网页间链接度的递归和规范化计算,得到每个网页的重要度评价。PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在,但忽略了绝大多数用户访问时带有目的性,即网页和链接与查询主题的相关性。针对这个问题,HITS算法提出了两个关键的概念:权威型网页(authority)和中心型网页(hub)。 

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

4.1.2 网站粒度的分析算法 
网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取的关键之处在于站点的划分和站点等级(SiteRank)的计算。SiteRank的计算方法与PageRank类似,但是需要对网站之间的链接作一定程度抽象,并在一定的模型下计算链接的权重。 
网站划分情况分为按域名划分和按IP地址划分两种。文献[18]讨论了在分布式情况下,通过对同一个域名下不同主机、服务器的IP地址进行站点划分,构造站点图,利用类似PageRank的方法评价SiteRank。同时,根据不同文件在各个站点上的分布情况,构造文档图,结合SiteRank分布式计算得到DocRank。文献[18]证明,利用分布式的SiteRank计算,不仅大大降低了单机站点的算法代价,而且克服了单独站点对整个网络覆盖率有限的缺点。附带的一个优点是,常见PageRank 造假难以对SiteRank进行欺骗。 
4.1.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算法,并通过实验证明,效率和准确率都比传统的对应算法要好。 
4.2 基于网页内容的网页分析算法 
基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页的内容从原来的以超文本为主,发展到后来动态页面(或称为Hidden Web)数据为主,后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒体数据、Web Service等各种网络资源形式也日益丰富。因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不同,将基于网页内容的分析算法,归纳以下三类:第一种针对以文本和超链接为主的无结构或结构很简单的网页;第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格,且可以直接访问。


分享到:
评论

相关推荐

    基于web爬虫基本原理的新技术专题课程论文

    二、聚焦爬虫工作原理及关键技术 2.1 聚焦爬虫相关概念 聚焦爬虫区别于通用爬虫,它不是无目的地抓取所有网页,而是有选择性地针对特定主题或领域进行深度抓取。聚焦爬虫的目标是获取与特定主题相关的信息,提高...

    2020年引擎蜘蛛工作原理.pdf

    2020年引擎蜘蛛的工作原理主要包括聚焦爬虫的工作流程、抓取目标的描述和定义,以及网页搜索策略。 1. 聚焦爬虫工作原理及关键技术: 聚焦爬虫与传统爬虫的主要区别在于它具有针对性,能够根据特定的主题或目标...

    网络爬虫一种搜索引擎

     1 聚焦爬虫工作原理及关键技术概述  网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的...

    Focused Crawler 聚焦爬虫

    基于本体的聚焦爬虫原理 ##### 2.1 本体的应用 在构建聚焦爬虫时,采用本体(ontology)可以帮助爬虫更好地理解网页内容并进行精确分类。本体是一种形式化的概念模型,用于描述特定领域内的实体、属性及其关系。...

    聚焦爬虫概论

    本文将深入探讨聚焦爬虫的概念、工作原理以及关键技术,并对其在实际应用中的挑战进行分析。 #### 一、聚焦爬虫概述 聚焦爬虫(Focused Web Crawler),又称为主题爬虫或目标爬虫,是一种专门针对特定领域或主题...

    解析网络爬虫技术原理.pdf

    "网络爬虫技术原理" 网络爬虫技术原理是指通过计算机程序自动下载网页,按照 URL 指向,在互联网上进行数据、信息的爬取,高效、精准地进行数据采集。该技术原理有着十分重要的应用价值,根据其技术原理,科学、...

    Python爬虫案例分享,抓取网页内容,聚焦爬虫和UA伪装实操案例分享

    本案例分享将带你深入理解Python爬虫的基本原理,并通过实践操作,掌握如何利用requests模块抓取网页内容,同时探讨聚焦爬虫和反扒技术,如UA伪装的应用。 首先,Python中的requests模块是进行HTTP请求的常用工具,...

    商品评论聚焦爬虫算法设计与实现 (2012年)

    从商品评论抽取算法出发,使用开放应用编程接口调用和链接跟踪的方法,分别设计了基于通用爬虫原理和开放应用编程接口(OpenAPI)的商品评论聚焦爬虫算法。在此基础上实现了淘宝网和京东网商品评论收集程序。最后将两者...

    Web爬虫的技术原理及实现机制

    通用爬虫(也叫全网爬虫)的目标是尽可能广泛地抓取互联网上的信息,而聚焦爬虫则有明确的目标和主题,只关注与特定领域相关的网页。聚焦爬虫的关键技术在于如何确定网页的相关性和重要性,通常会结合关键词匹配、...

    Python爬虫入门教程

    聚焦爬虫需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入待抓取的URL队列。 爬虫的工作原理可以分为五部分:已下载未过期网页、已下载已过期网页、待下载网页、可知网页和不可知网页。...

    大数据竞争情报.ppt

    这种构建可以使用B/S(浏览器/服务器)架构,运用聚焦爬虫工作原理的网络爬虫进行情报信息的采集,并用基于Hadoop的KNN算法进行情报信息的处理和分类。 大数据竞争情报系统模型的应用是指基于大数据的...

    解析Python网络爬虫_复习大纲.docx

    3. 根据使用场景的不同,网络爬虫可分为通用爬虫和聚焦爬虫两种。 4. 爬虫可以爬取互联网上公开的且可以访问到的网页信息。 判断题: 1. 爬虫是手动请求万维网网站且提取网页数据的程序。(×) 2. 爬虫爬取的是...

    python爬虫概述——深入了解爬虫原理

    例如,通用爬虫、聚焦爬虫、功能性爬虫、数据增量爬虫等。 爬虫的流程: 爬虫的流程主要包括获取一个url、向url发送请求、获取响应、提取url或数据等步骤。 HTTP协议: HTTP协议是爬虫的基础,爬虫需要掌握HTTP和...

    大数据爬虫大数据爬虫服务平台.docx

    爬虫原理是指爬虫技术的基本原理,包括网络爬虫原理和爬虫系统的工作原理。网络爬虫原理是指爬虫技术的基本原理,即通过爬虫技术可以自动地抓取万维网信息,获取或更新这些网站的内容和检索方式。爬虫系统的工作原理...

    主题爬虫论文包

    这些论文的综合阅读将帮助读者深入理解网络爬虫的工作原理,聚焦爬虫的实现方法,以及如何根据特定需求定制和优化爬虫策略。同时,它们也反映了网络爬虫技术在学术研究和实际应用中的不断进步和发展。

    基于python的聚焦网络爬虫数据采集系统设计与实现.docx

    论文深入研究了网络爬虫的基本原理,Python编程语言的应用,以及Django框架在构建系统中的作用。 【关键词】 毕业论文,Python,数据挖掘,爬虫,Django 【第一章 引言】 1.1 研究背景 随着互联网的快速发展,...

    Python爬虫环境与爬虫介绍

    爬虫可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫和深层网络爬虫等类型。 * 通用网络爬虫:也称为全网爬虫,其爬行对象由一批种子URL扩充至整个Web,该类爬虫比较适合为搜索引擎搜索广泛的主题,主要由搜索...

    网络爬虫介绍

    Heritrix作为一款功能强大的开源聚焦爬虫,不仅能够高效地抓取特定主题的网页数据,还提供了灵活的配置选项和高度可扩展性,是研究和实践聚焦爬虫技术的理想选择。通过对Heritrix的学习和应用,我们可以深入理解网络...

Global site tag (gtag.js) - Google Analytics