网络爬虫技术的研究_孙立伟

合集下载

网络爬虫技术与搜索引擎算法研究

网络爬虫技术与搜索引擎算法研究

网络爬虫技术与搜索引擎算法研究一、网络爬虫技术网络爬虫技术是引擎的基础,其主要功能是自动从互联网上获取网页内容。

爬虫技术通过模拟浏览器访问网页,抓取网页的HTML代码,并解析其中的链接,从而构建一个网页链接的集合或图结构。

爬虫技术的研究主要集中在以下几个方面:1.爬虫策略与调度:爬虫需要根据一定的策略来决定要抓取的URL,并通过合适的调度方式进行抓取。

常见的策略包括广度优先和深度优先等,调度方式可以是单线程或多线程抓取。

2.URL去重与重复抓取:爬虫需要通过去重机制来避免抓取相同的网页,同时需要解决重复抓取的问题。

去重可以通过URL指纹、URLMD5哈希等方法进行,重复抓取则需要记录已经抓取的URL并进行判断。

3. 网页解析与结构化:爬虫需要对抓取的网页进行解析,提取出所需的信息并进行结构化处理。

常见的解析方法有正则表达式、XPath、CSS Selector等,可以提取出网页标题、正文、链接等元素。

4.分布式爬虫:随着互联网规模的不断扩大,单机爬虫已经不能满足大规模抓取需求。

分布式爬虫可以通过多台机器协同工作来提高抓取速度和效率,其研究主要包括任务分发、数据传输、调度算法等。

二、引擎算法引擎算法是引擎的核心,决定了结果的排序和优化。

引擎算法的研究主要包括以下几个方面:1.关键词匹配算法:引擎需要对用户输入的关键词进行匹配,查找包含关键词的网页。

常见的关键词匹配算法包括基于倒排索引的算法、布尔检索算法、向量空间模型等。

2. 网页权重计算算法:引擎需要对抓取的网页进行权重计算,以决定网页的排序。

网页权重算法包括PageRank算法、TF-IDF算法、HITS算法等。

3.超链接分析算法:引擎通过分析网页之间的超链接关系来提升结果的质量和相关性。

超链接分析算法主要包括链接分析、社交网络分析、主题关联分析等。

4.查询扩展与纠错算法:用户在输入查询时可能存在错误拼写或查询词不完整的情况,引擎需要通过查询扩展和纠错算法来提升结果的准确性和完整性。

网络爬虫技术

网络爬虫技术

网络爬虫技术起源:要说网络蜘蛛的起源,我们还得从搜索引擎说起,什么是搜索引擎呢?搜索引擎的起源是什么,这和网络蜘蛛的起源密切相关。

用户进行查询的系统。

因特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。

搜索引擎从1990年原型初显,如今成为人们生活中必不可少的一部分,它经历了太多技术和观念的变革。

1994年的1月份,第一个既可搜索又可浏览的分类目录EINetGalaxy上线了。

在它之后才出现了雅虎,直至我们现在熟知的Google、百度。

但是他们都不是第一个吃搜索引擎这个螃蟹的人。

从搜索FTP上的文件开始,搜索引擎的原型就出现了,那时还未有万维网,当时人们先用手工后用蜘蛛程序搜索网页,但随着互联网的不断壮大,怎样能够搜集到的网页数量更多、时间更短成为了当时的难点和重点,成为人们研究的重点。

网络爬虫:1.概念:网络爬虫也叫网络蜘蛛,它是一个按照一定的规则自动提取网页程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点上所有的链接是否是都是有效的。

当然,更为高级的技术是把网页中的相关数据保存下来,可以成为搜索引擎。

搜索引擎使用网络爬虫寻找网络内容,网络上的HTML文档使用超链接连接了起来,就像织成了一张网,网络爬虫也叫网络蜘蛛,顺着这张网爬行,每到一个网页就用抓取程序将这个网页抓下来,将内容抽取出来,同时抽取超链接,作为进一步爬行的线索。

网络爬虫总是要从某个起点开始爬,这个起点叫做种子,你可以告诉它,也可以到一些网址列表网站上获取。

2.分类:通用爬虫是从一个或多个初始网页的URL开始,获取初始网页的URL,抓取网页的同时,从当前网页提取相关的URL放入队列中,直到满足程序的停止条件。

聚集爬虫即根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接(爬行的范围是受控的)放到待抓取的队列中,通过一定的搜索策略从队列中选择下一步要抓取的URL,重复以上步骤,直到满足程序的停止条件。

分布式网络爬虫技术研究与实现

分布式网络爬虫技术研究与实现

分布式网络爬虫技术研究与实现随着互联网的快速发展,网络爬虫作为一种自动获取网页信息的工具,越来越受到人们的。

传统的单线程爬虫方式已经无法满足大规模网页数据的获取需求。

因此,分布式网络爬虫技术应运而生,其通过将任务分配给多个节点并行处理,大大提高了网页的爬取效率。

本文将对分布式网络爬虫技术的研究与实现进行探讨。

首先需要确定需要爬取的网站和页面,根据需求制定合理的爬取策略。

通过网络爬虫解析目标网站的页面结构,提取出需要的数据。

对于不同的网站,可能需要采用不同的解析方法。

例如,可以使用正则表达式、 XPath、BeautifuISoup等解析HTML页面,对于需要登录才能访问的网站,则需要进行模拟登录操作。

根据爬取任务的需求,将爬虫任务分配到不同的节点上进行处理。

可以借助Docker等工具实现快速部署,提高节点管理的效率。

将爬取到的数据进行清洗、去重、存储等操作。

常用的数据存储方式包括关系型数据库(例如MySQL、PostgreSQL)和非关系型数据库(例如MongoDB、Cassandra)。

为了避免部分节点过载,需要实现负载均衡策略,将任务分配给多个节点进行处理。

可以使用轮询、随机、Hash等算法实现负载均衡。

为了提高任务处理的效率,需要合理地安排任务处理的顺序和优先级。

可以使用基于优先级队列(例如Python中的heapq模块)或遗传算法等实现任务调度。

为了避免重复抓取相同的页面和数据,需要在节点之间建立去重机制。

可以使用哈希表、布隆过滤器等算法实现数据去重。

异常处理遇到异常情况时,需要进行容错处理,避免因为个别节点的问题导致整个爬虫任务的失败。

可以使用try-except语句或Python 中的异常处理机制进行异常处理。

针对目标网站可能采取的反爬虫策略,如限制IP访问频率、检测和封锁异常行为等,研究相应的应对措施,如模拟人类访问行为、使用代理IP等,以提高分布式网络爬虫的鲁棒性和可靠性。

在分布式网络爬虫中引入多线程并行处理技术,可以进一步提高网页的爬取效率。

基于网络爬虫的搜索引擎优化技术研究

基于网络爬虫的搜索引擎优化技术研究

基于网络爬虫的搜索引擎优化技术研究搜索引擎优化技术在当今互联网时代具有重要意义。

网络爬虫作为搜索引擎优化技术的核心工具之一,它的作用是在全网范围内抓取网页并建立索引。

本文将探讨基于网络爬虫的搜索引擎优化技术的研究,并介绍其中的关键技术和挑战。

一、概述随着互联网的快速发展,网络上的信息爆炸性增长,人们对搜索引擎提供准确、快速的搜索结果的需求也越来越高。

搜索引擎优化技术作为提升搜索结果排名和用户体验的方法之一,成为了网站拓展和推广的重要手段。

而其中基于网络爬虫的搜索引擎优化技术更是核心和关键。

二、网络爬虫的作用网络爬虫是搜索引擎优化技术中的重要组成部分,其作用是通过抓取网页并进行索引建立,从而让搜索引擎能够快速获取和展示相关的搜索结果。

爬虫遵循特定的算法,自动抓取互联网上的网页,并将其存储到搜索引擎的数据库中。

三、搜索引擎优化的关键技术1. 内容优化内容优化是搜索引擎优化的核心,它包括关键词的使用、网页信息结构的优化等。

针对具体的关键词进行内容优化,可以提高网页在搜索引擎中的排名。

同时,合理的网页结构和标签的应用也能让搜索引擎更好地理解和解析网页内容。

2. 外部链接优化外部链接优化是指通过获取外部的高质量链接,并将其指向自己的网站,从而提高网站的权威性和可信度。

而网络爬虫在确定网站排名时会考虑外部链接的数量和质量,因此外部链接优化对于提升搜索引擎排名非常重要。

3. 网络爬虫协议网络爬虫协议是爬虫在访问和抓取网页时要遵循的规则。

例如,Robots.txt是一种常用的爬虫协议,网站所有者可以在该文件中指定哪些页面允许被爬虫抓取,哪些页面禁止被爬取。

合理使用网络爬虫协议可以让爬虫更加高效地工作,并提高搜索引擎优化效果。

四、网络爬虫的优化挑战虽然网络爬虫在搜索引擎优化中起着重要作用,但也面临着一些挑战。

1. 反爬机制为了保护网站的隐私和安全,很多网站会设置反爬机制,例如IP封闭、验证码等。

这给网络爬虫的抓取工作带来了很大的困难。

网络爬虫技术与搜索引擎算法研究

网络爬虫技术与搜索引擎算法研究

网络爬虫技术与搜索引擎算法研究近年来,随着互联网的快速发展,网络爬虫技术以及搜索引擎算法的研究也变得越来越重要。

网络爬虫技术是指通过爬虫程序将互联网上的信息进行收集和整理的技术,而搜索引擎算法则是通过一定的算法模型来为用户提供合适的搜索结果。

本文将从网络爬虫技术和搜索引擎算法两个方面分别进行深入探讨。

1. 网络爬虫技术网络爬虫技术是指通过爬虫程序将互联网上的信息进行收集和整理的技术,主要用于搜索引擎的数据收集、社交媒体的数据分析等领域。

网络爬虫技术的本质是模拟人的浏览行为从而获取需要的信息,包括文本、图片、视频等多种形式的数据。

(1)爬虫技术原理网络爬虫技术的原理是通过HTTP协议从网络上获取页面数据。

其基本流程是从初始URL出发,将URL入队列,并向URL发起HTTP请求,解析HTTP响应并提取有用的信息,将页面上的URL加入URL队列,重复上述步骤直到URL队列为空或达到指定页面数量。

爬虫技术的主要难点在于如何提高效率和精准度,常用技术包括线程池、动态IP代理、验证码识别等。

(2)爬虫技术应用网络爬虫技术广泛应用于搜索引擎、信息采集、竞争情报、舆情监测等领域。

具体应用场景包括:①网站抓取。

根据需求自动抓取网站的相关数据,比如房地产信息、股票数据、新闻等。

②数据清洗。

原始的网页代码通常比较混乱,需要进行清洗和规整化,从而方便统计和分析。

③竞争对手分析。

通过对竞争对手网站的抓取和比较,可以了解对手的产品、价格、促销等信息。

④社交媒体监测。

社交媒体已经成为公司与用户沟通的重要渠道,通过对社交媒体数据的分析可以了解用户心态、反馈等信息。

2. 搜索引擎算法搜索引擎算法是指通过一定的算法模型来为用户提供合适的搜索结果,目的是使用户能够快速、准确地找到自己需要的信息。

搜索引擎算法不断地更新和优化,其核心是通过不断的学习和挖掘数据,提高搜索结果的质量和效率。

(1)搜索引擎算法原理搜索引擎算法的原理是将网页相关性和权威性作为排序的主要依据。

网络爬虫软件的研究与开发

网络爬虫软件的研究与开发

网络爬虫软件的研究与开发摘要:作为一种快捷、高效访问网络海量数据的工具,通用搜索引擎自诞生以来备受人们喜爱。

然而在设计上它却存在着很多不足,并且随着万维网的快速发展而日益不能满足人们的需求。

基于这种背景,用于对网页进行定向抓取的主题爬虫应运而生。

主题爬虫的设计理念是利用最少的资源,尽可能快而准确地抓取网络中用户关心的网页,目前已经有着非常广泛的应用。

首先,了解主题爬虫提出的历史背景及当前国内外的发展状况,分析与主题爬虫设计相关的技术知识,如HTTP协议、HTML解析、中文分词等。

其次,提出使用向量空间模型进行主题相关度计算。

为了能够充分利用网页中丰富的启发式信息,综合运用了网页内容分析和网页链接分析技术。

最后,基于对主题爬虫设计与实现方法的研究,使用Java开发一个多线程主题爬虫。

关键词:主题爬虫;向量空间模型;主题相关度;爬虫阻止协议1 背景及发展状况万维网诞生以来,其独特的魅力极大地激发了人类创作的积极性,短短十几年便发展成为了目前世界上规模最大的公共数据源。

然而人类的接受能力却是十分有限的,因此便产生了一种能够高效访问网络资源的需求。

在这种背景下,通用搜索引擎应运而生,如比较知名的Baidu、Google。

爬虫(Crawler),又称蜘蛛(Spider)或者机器人(Robot),是一种能够高效抓取网络资源的程序。

通用搜索引擎设计中用于抓取网络资源的爬虫被称为通用爬虫,这种爬虫的设计目标是尽可能快而多地抓取网络中的各种资源,具有很强的通用性。

但是,随着万维网的不断发展及人类的进步,通用爬虫的应用暴露出了很大的局限性。

比如大量不相关网络资源被抓取、严重浪费网络带宽、不能够支持语义查询等等。

为解决所面临的问题,用于定向抓取网络资源的主题爬虫被提上了研究日程。

最佳优先爬虫是一种简单、高效的主题爬虫。

在页面主题相关度评价上,它采用了经典的向量空间模型;而在对页面中所含链接进行主题相关度预测打分时则充分考虑了链接锚文本、链接所在页面的主题相关度、兄弟链接等等各种启发式信息。

基于 Python 网络爬虫的数据挖掘技术研究

基于 Python 网络爬虫的数据挖掘技术研究

《基于 Python 网络爬虫的数据挖掘技术研究》摘要:随着互联网的飞速发展,数据量呈爆炸式增长,如何从海量的数据中提取有价值的信息成为了一个重要的研究课题。

网络爬虫作为一种自动获取网页数据的技术,为数据挖掘提供了丰富的数据来源。

本文深入研究了基于 Python 的网络爬虫技术以及数据挖掘方法,详细阐述了网络爬虫的工作原理、实现过程以及在数据挖掘中的应用。

通过实际案例分析,展示了网络爬虫与数据挖掘技术相结合的优势和效果。

同时,也探讨了该技术面临的挑战和未来的发展趋势。

关键词:Python;网络爬虫;数据挖掘;信息提取一、引言(一)研究背景在当今信息时代,互联网已经成为了人们获取信息的主要渠道。

随着互联网上的数据量不断增长,如何高效地从这些海量数据中提取有价值的信息成为了一个亟待解决的问题。

数据挖掘技术作为一种从大量数据中发现潜在模式和知识的方法,受到了广泛的关注。

而网络爬虫作为数据挖掘的重要数据来源之一,可以自动地从互联网上抓取网页数据,为数据挖掘提供了丰富的原材料。

(二)研究目的和意义本研究的目的是深入探讨基于 Python 的网络爬虫技术与数据挖掘方法的结合,提高数据挖掘的效率和准确性。

具体来说,本研究的意义主要有以下几个方面:1.为数据挖掘提供丰富的数据来源。

网络爬虫可以自动地抓取大量的网页数据,为数据挖掘提供了广泛的数据基础。

2.提高数据挖掘的效率。

通过自动化的数据采集,可以大大减少人工数据收集的时间和成本,提高数据挖掘的效率。

3.发现潜在的有价值信息。

数据挖掘技术可以从网络爬虫抓取的大量数据中发现潜在的模式和知识,为企业和个人提供有价值的决策支持。

二、网络爬虫技术概述(一)网络爬虫的定义和分类1.定义网络爬虫,又称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

2.分类根据不同的标准,网络爬虫可以分为不同的类型。

例如,按照爬取的范围可以分为通用网络爬虫和聚焦网络爬虫;按照爬取的方式可以分为增量式网络爬虫和深度优先网络爬虫等。

大规模网络爬虫和数据挖掘技术的研究

大规模网络爬虫和数据挖掘技术的研究

大规模网络爬虫和数据挖掘技术的研究一、引言随着互联网的发展,网络上的信息呈现出爆炸式增长的态势。

如何有效地从浩如烟海的信息中挖掘出有用的内容,成为了数据挖掘领域中的一个重要问题。

而网络爬虫技术,则是进行大规模数据挖掘的基础之一。

因此,本文将会探讨大规模网络爬虫和数据挖掘技术的研究进展。

二、大规模网络爬虫技术1. 基本概念网络爬虫(web crawler),又称网络蜘蛛(web spider),是一种自动化程序,可以在互联网上搜索、抓取、分析和存储信息。

简而言之,它就是一种获取网站信息的工具。

爬虫通过分析网页中的超链接,从一个页面跳转到另一个页面,逐层深入递归获取数据。

通常,网络爬虫主要应用于搜索引擎、数据挖掘、网站监控和信息采集等领域。

2. 技术架构爬虫的技术架构一般分为三层:爬虫层、解析层和存储层。

(1)爬虫层爬虫层是爬虫程序的核心部分,负责从网页中获取信息。

主要包括以下几个环节:①网络通信:爬虫需要通过网络请求与目标网站进行通信,从而获取网页信息。

②链接管理:爬虫需要管理所要抓取的链接队列,通过不断地从队列中取出链接,逐层获取数据。

③数据获取:爬虫通过对网页源代码进行解析,获取需要的信息。

(2)解析层解析层是将爬虫层获取到的数据进行解析和处理的环节。

主要包括以下几个部分:①数据清洗:将获取到的数据进行去重、过滤、规范化等操作,保证数据的质量和准确性。

②数据解析:将获取到的网页源代码进行解析,提取需要的信息。

③数据处理:对爬取到的数据进行分析、处理和挖掘,以发现其中的规律与价值。

(3)存储层存储层是将解析后的数据进行持久化存储的环节,以便后续的分析和挖掘。

存储层一般使用数据库或者文件系统进行存储。

3. 技术难点大规模网络爬虫技术的实现面临着许多技术难点,主要包括以下几个方面:(1)网页处理的效率问题:在大规模爬取网页的过程中,网页的数量和体积是非常庞大的,如何有效地进行处理和存储是一个难点。

(2)反爬虫机制的应对问题:许多网站都设有反爬虫机制,以避免被恶意爬虫攻击。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机工程应用技术ComputerKnowledgeandTechnology电脑知识

与技术

本栏目责任编辑:梁书第6卷第15期(2010年5月)

网络爬虫技术的研究孙立伟,何国辉,吴礼发(解放军理工大学指挥自动化学院,江苏南京210007)摘要:网络信息资源的迅猛增长使得传统搜索引擎已经无法满足人们对有用信息获取的要求,作为搜索引擎的基础和重要组成部分,网络爬虫的作用显得尤为重要,该文介绍了网络爬虫的基本概念、爬行Web面临的困难及应对措施,其次从体系结构、爬行策略和典型应用等方面研究了通用网络爬虫、聚焦网络爬虫、增量式网络爬虫和深层网络爬虫四种常见网络爬虫,最后指出了进一步工作的发展方向。关键词:搜索引擎;网络爬虫中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)15-4112-04ResearchontheWebCrawlerSUNLi-wei,HEGuo-hui,WULi-fa(InstituteofCommandandAutomationofPLAUST,Nanjing210007,China)Abstract:ThetraditionalsearchenginescannotsatisfythedemandsofgettingusefulinformationwiththeblastdevelopingofinformationresourcesonInternet,asthefoundationandimportantpartofsearchengine,theactionoftheWebCrawlerappearsespeciallyimportant,thearticleintroducestheconceptofWebcrawler,thetroubleofcrawlingandtheresolvent,alsohavearesearchonfourkindsoffamiliarWebCrawler.

Keywords:searchengines;webcrawler网络爬虫(WebCrawler),又称为网络蜘蛛(WebSpider)或Web信息采集器,是一个自动下载网页的计算机程序或自动化脚本,是搜索引擎的重要组成部分。网络爬虫通常从一个称为种子集的URL集合开始运行,它首先将这些URL全部放入到一个有序的待爬行队列里,按照一定的顺序从中取出URL并下载所指向的页面,分析页面内容,提取新的URL并存入待爬行URL队列中,如此重复上面的过程,直到URL队列为空或满足某个爬行终止条件,从而遍历Web[1]

。该过程称为网络爬行(WebCrawling)。

1网络爬虫面临的问题

截止到2007年底,Internet上网页数量超出160亿个,研究表明接近30%的页面是重复的;动态页面的存在:客户端、服务器端脚本语言的应用使得指向相同Web信息的URL数量呈指数级增长。上述特征使得网络爬虫面临一定的困难,主要体现在Web信息的巨大容量使得爬虫在给定时间内只能下载少量网页。Lawrence和Giles的研究[2]表明没有哪个搜索引擎能够索引超出16%的Internet上Web页面,即使能够提取全部页面,也没有足够的空间来存储。

为提高爬行效率,爬虫需要在单位时间内尽可能多的获取高质量页面,是它面临的难题之一。当前有五种表示页面质量高低的方式[1]:Similarity(页面与爬行主题之间的相似度)、Backlink(页面在Web图中的入度大小)、PageRank(指向它的所有页面平均权值之和)、Forwardlink(页面在Web图中的出度大小)、Location(页面的信息位置);Parallel(并行性问题)[3]。为了提高爬行速度,网络通常会采取并行爬行的工作方式,随之引入了新的问题:重复性(并行运行的爬虫或爬行线程同时运行时增加了重复页面)、质量问题(并行运行时,每个爬虫或爬行线程只能获取部分页面,导致页面质量下降)、通信带宽代价(并行运行时,各个爬虫或爬行线程之间不可避免要进行一些通信)。并行运行时,网络爬虫通常采用三种方式:独立方式(各个爬虫独立爬行页面,互不通信)、动态分配方式(由一个中央协调器动态协调分配URL给各个爬虫)、静态分配方式(URL事先划分给各个爬虫)。2网络爬虫的分类

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(GeneralPurposeWebCrawler)、聚焦网络爬虫(FocusedWebCrawler)、增量式网络爬虫(IncrementalWebCrawler)、深层网络爬虫(DeepWebCrawler)。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。2.1通用网络爬虫

通用网络爬虫[3]又称全网爬虫(ScalableWebCrawler),爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。由于商业原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时

收稿日期:2010-03-11

ISSN1009-3044ComputerKnowledgeandTechnology电脑知识

与技术

Vol.6,No.15,May2010,pp.4112-4115

E-mail:kfyj@cccc.net.cnhttp://www.dnzs.net.cnTel:+86-551-56909635690964

4112计算机工程应用技术ComputerKnowledgeandTechnology电脑知识

与技术

本栏目责任编辑:梁书第6卷第15期(2010年5月)

间才能刷新一次页面。虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。通用网络爬虫的结构大致可以分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、URL队列、初始URL集合几个部分,其体系结构如图1所示[4]。

为提高工作效率,通用网络爬虫会采取一定的爬行策略。常用的爬行策略有[5]:深度优先策略、广度优先策略。

1)深度优先策略:其基本方法是按照深度由低到高的顺序,依次访问下一级

网页链接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点进一步搜索其它链接。当所有链接遍历完后,爬行任务结束。这种策略比较适合垂直搜索或站内搜索,但爬行页面内容层次较深的站点时会造成资源的巨大浪费;2)广度优先策略:此策略按照网页内容目录层次深浅来爬行页面,处于较浅目录层次的页面首先被爬行。当同一层次中的页面

爬行完毕后,爬虫再深入下一层继续爬行。这种策略能够有效控制页面的爬行深度,避免遇到一个无穷深层分支时无法结束爬行的问题,实现方便,无需存储大量中间节点,不足之处在于需较长时间才能爬行到目录层次较深的页面。典型的通用爬虫有GoogleCrawler、Mercator。GoogleCrawler[6]是一个分布式的基于整个Web的爬虫,采用异步I/O而不是多线程来实现并行化。它有一个专门的URLServer进程负责为多个爬虫节点维护URL队列。GoogleCrawler还使用了许多算法优化系统性能,最著名的就是PageRank算法。2.2聚焦网络爬虫

聚焦网络爬虫(FocusedCrawler),又称主题网络爬虫(TopicalCrawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫[8]。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量

少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求[3]。

聚焦网络爬虫和通用网络爬虫相比,增加了链接评价模块以及内容评价模块,其系统结构图2所示[9]。

聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方法计算出的重要性不同,由此导致链接的访问顺序也不同。1)基于内容评价的爬行策略:DeBra[10]

将文本相似度的计算方法引入到

网络爬虫中,提出了FishSearch算法,它将用户输入的查询词作为主题,包含查询词的页面被视为与主题相关,其局限性在于无法评价页面与主题相关度的高低。Herseovic[11]对FishSearch算法进行了改进,提出了Shark-search算法,利用空间向量模型计算页面与主题的相关度大小;

2)基于链接结构评价的爬行策略:Web页面作为一种半结构化文档,

包含很多结构信息,可用来评价链接重要性。PageRank算法最初用于搜索引擎信息检索中对查询结果进行排序,也可用于评价链接重要性[12],具体做

法就是每次选择PageRank值较大页面中的链接来访问。另一个利用Web结构评价链接价值的方法是HITS方法[13],它通过计算每个已访问页面的Authority权重和Hub权重,并以此决定链接的访问顺序。

3)基于增强学习的爬行策略[14]:Rennie和McCallum将增强学习引入聚焦爬虫,利用贝叶斯分类器,根据整个网页文本和链接

文本对超链接进行分类,为每个链接计算出重要性,从而决定链接的访问顺序;4)基于语境图的爬行策略:Diligenti等人提出了一种通过建立语境图[15](ContextGraphs)学习网页之间的相关度,训练一个机器

学习系统,通过该系统可计算当前页面到相关Web页面的距离,距离越近的页面中的链接优先访问。印度理工大学(IIT)和IBM研究中心的研究人员开发了一个典型的聚焦网络爬虫[8]。该爬虫对主题的定义既不是采用关键词也

不是加权矢量,而是一组具有相同主题的网页。它包含两个重要模块:一个是分类器,用来计算所爬行的页面与主题的相关度,确定是否与主题相关;另一个是净化器,用来识别通过较少链接连接到大量相关页面的中心页面。2.3增量式网络爬虫

增量式网络爬虫(IncrementalWebCrawler)[16]是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫的体系结构[16]如图3所示,它包含爬行模块、排序模块、更新模块、本地页面集、待爬行URL集以及本地页面URL集。

图1通用网络爬虫体系结构图2聚焦网络爬虫体系结构图3增量式爬虫体系结构4113

相关文档
最新文档