`

搜索引擎蜘蛛爬虫原理

阅读更多
copy:http://www.cublog.cn/u/15138/showart_408982.html

1聚焦爬虫工作原理及关键技术概述
    网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,
不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

    聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,
保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,
并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,
进行一定的分析、过滤,并建立索引,以便之后的查询和检索;
对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。

相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:
(1)对抓取目标的描述或定义;
(2)对网页或数据的分析与过滤;
(3)对URL的搜索策略。

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

抓取目标描述
现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念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)的分层式上下文模型(ContextModel),
用于描述指向目标网页一定物理跳数半径内的网页拓扑图的中心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网页分割算法将网页分为不同的网页块(pageblock),
然后对这些网页块建立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基于网页内容的网页分析算法
基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页的内容从原来的以超文本为主,
发展到后来动态页面(或称为HiddenWeb)数据为主,后者的数据量约为直接可见页面数据(PIW,PubliclyIndexableWeb)的400~500倍。
另一方面,多媒体数据、WebService等各种网络资源形式也日益丰富。因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,
发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不同,
将基于网页内容的分析算法,归纳以下三类:第一种针对以文本和超链接为主的无结构或结构很简单的网页;
第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;
第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格,且可以直接访问。
分享到:
评论

相关推荐

    网站搜索引擎蜘蛛爬虫日志分析

    网站搜索引擎蜘蛛爬虫日志分析是一项关键的SEO(搜索引擎优化)技术,它涉及到对网站访问记录的深入理解和解析,以了解搜索引擎如何与你的网站互动。本文将深入探讨这个主题,帮助你理解爬虫的工作原理、如何分析...

    蜘蛛爬虫搜索引擎

    **蜘蛛爬虫搜索引擎** 在互联网世界中,搜索引擎是获取信息的关键工具,而“蜘蛛爬虫”(也称为网络爬虫或网页爬虫)是搜索引擎背后的重要技术之一。它通过自动地遍历和抓取互联网上的网页,为搜索引擎提供丰富的...

    搜索引擎蜘蛛访问记录器

    首先,我们需要理解搜索引擎蜘蛛的工作原理。搜索引擎蜘蛛会定期抓取网页内容,跟踪页面上的链接,并将这些信息存储在搜索引擎的数据库中。它们对网页的抓取频率取决于多种因素,包括网站更新频率、页面权重以及爬虫...

    爬虫搜索,简单的搜索引擎,java爬虫,搜索引擎例子,爬虫demo,java实现互联网内容抓取,搜索引擎大揭密

    这个"搜索引擎大揭密"的项目不仅展示了爬虫的基本工作原理,还揭示了如何使用Java技术构建一个简易的搜索系统,这对于学习和理解相关技术具有重要意义。在实际应用中,还需要考虑更多因素,如反爬策略、性能优化、...

    蜘蛛爬虫实现jar包

    1. **蜘蛛爬虫原理**:蜘蛛爬虫通过HTTP/HTTPS协议与服务器通信,发送请求(GET或POST)并接收响应,获取网页内容。它的工作流程通常包括:发现URL、下载网页、解析内容、提取链接、存储数据等步骤。 2. **URL抓取*...

    泊君多功能搜索引擎蜘蛛模拟器

    总之,泊君多功能搜索引擎蜘蛛模拟器是一款强大的SEO工具,它能帮助网站管理员和SEO专家深入理解搜索引擎的工作原理,找出网站的优化潜力,并采取相应的措施提高搜索引擎的友好度,最终提升网站在搜索结果中的表现。...

    网络爬虫+搜索引擎+C#源码

    网络爬虫和搜索引擎是互联网数据挖掘与信息处理的两个重要技术。它们在现代信息技术中扮演着不可或缺的角色,尤其是在大数据分析、市场研究、竞争对手分析、内容推荐系统等方面。 网络爬虫,也称为网络蜘蛛或Web...

    Delphi模拟搜索引擎蜘蛛抓取网页内容.rar

    在IT领域,搜索引擎蜘蛛(也称为网络爬虫)是用于自动遍历互联网并抓取网页内容的程序。这个"Delphi模拟搜索引擎蜘蛛抓取网页内容.rar"文件提供了一个使用Delphi编程语言实现的简单示例,帮助我们理解搜索引擎蜘蛛的...

    自己动手写搜索引擎和网络爬虫

    在IT领域,搜索引擎和网络爬虫是两个非常关键的技术,它们是互联网信息获取与处理的基础...在这个过程中,你不仅能学到技术,还能理解搜索引擎背后的工作原理,为未来在大数据分析、信息检索等领域的工作打下坚实基础。

    搜索引擎蜘蛛机器人工作原理.pdf

    搜索引擎蜘蛛机器人,也称为网络爬虫,是搜索引擎背后的关键技术之一,它们负责在全球互联网上自动地发现和抓取网页内容,以便为用户提供相关信息检索服务。本文将深入探讨搜索引擎蜘蛛机器人的工作原理及其重要策略...

    搜索引擎Web爬虫

    总的来说,搜索引擎Web爬虫是信息时代的重要工具,通过理解其工作原理和优化技巧,开发者能够更好地构建高效、智能的信息获取系统。无论是对于网站数据分析、市场研究还是个性化推荐,掌握Web爬虫技术都能为IT专业...

    最新仿百度搜索引擎,带蜘蛛

    本文将深入探讨“最新仿百度搜索引擎,带蜘蛛”这一主题,包括搜索引擎的基本原理、蜘蛛爬虫的工作方式,以及与百度搜索引擎的相似之处。 首先,搜索引擎的核心功能是为用户提供信息检索服务。它通过抓取、索引和...

    ASP搜索引擎蜘蛛爬行日志生成程序

    ASP搜索引擎蜘蛛爬行日志生成程序是一个用于记录搜索引擎爬虫活动的应用程序,它主要针对使用ASP(Active Server Pages)技术构建的网站。该程序能够帮助网站管理员了解搜索引擎如何索引和抓取他们的网页,从而优化...

    搜索引擎网络蜘蛛

    搜索引擎网络蜘蛛,也被称为网络爬虫或Web抓取器,是互联网上的一种自动化程序,用于遍历和索引网页内容。这些程序对于构建和维护搜索引擎的索引至关重要,因为它们负责发现新的网页、更新现有信息并删除已不存在的...

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

    搜索引擎蜘蛛,也称为网络爬虫,是搜索引擎的重要组成部分,它们负责在网络上自动抓取网页内容,以便搜索引擎能够构建索引并提供搜索服务。2020年引擎蜘蛛的工作原理主要包括聚焦爬虫的工作流程、抓取目标的描述和...

    扎鸟网搜索引擎蜘蛛爬行监测系统.zip

    总的来说,扎鸟网的搜索引擎蜘蛛爬行监测系统为网站管理员提供了一个强大的工具,帮助他们深入理解搜索引擎的工作原理,优化网站结构,提升搜索引擎友好性,最终提高网站在搜索结果中的可见性和流量。对于任何一个...

    网络爬虫一种搜索引擎

     网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放...

    网络爬虫搜索系统.net(带蜘蛛)

    网络爬虫搜索是一款基于 Microsoft .NET 2.0 开发的垂直搜索引擎。系统有着强大的文件和数据库引索能力,支持中英文分词,文件相似度分析排序,文件数据时实监控与更新,恐龙级的引索速度和毫秒级的搜索速度,搜索...

    蜘蛛爬虫源码分享

    它们模拟了人类用户的行为,遍历网页并收集数据,这对于数据分析、搜索引擎优化(SEO)以及网站内容监控等应用至关重要。源码是指编程过程中编写的原始指令,是软件或程序的基础。分享源码意味着作者愿意公开其代码...

    分析一下SEO优化中的搜索引擎蜘蛛技术[总结].pdf

    SEO(搜索引擎优化)是提升网站在搜索引擎排名的关键技术,其中搜索引擎蜘蛛(又称网络爬虫)起着至关重要的作用。搜索引擎蜘蛛是搜索引擎用于抓取互联网上网页内容的自动化程序,它们通过跟踪链接遍历网络,构建...

Global site tag (gtag.js) - Google Analytics