《网络爬虫技术(新).doc》由会员分享,可在线阅读,更多相关《网络爬虫技术(新).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date网络爬虫技术(新)网络爬虫技术网络爬虫技术网络机器人1.概念:它们是Web上独自运行的软件程序,它们不断地筛选数据,做出自己的 决定,能够使用Web获取文本或者进行搜索查询,按部就班地完成各自的任务。2.分类:购物机器人、聊天机器人、搜索机器人(网络爬虫)等。搜索引擎1.概念:从网络上获得网站网页资料,能够建立数据库并提供查询的系统。2.分类(按工作原理):全文搜索引
2、擎、分类目录。 1 全文搜索引擎数据库是依靠网络爬虫通过网络上的各种链接自动获取大量网页信息内容,并按一定的规则分析整理形成的。(百度、Google) 2 分类目录:按目录分类的网站链接列表而已,通过人工的方式收集整理网站资料形成的数据库。(国内的搜狐)网络爬虫1.概念:网络爬虫也叫网络蜘蛛,它是一个按照一定的规则自动提取网页程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是把网页中的相关数据保存下来,可以成为搜索引擎。搜索引擎使用网络爬虫寻找网络内容,网络上的HTML文档使用超链接连接了起来,就像织成了一张网,网络
3、爬虫也叫网络蜘蛛,顺着这张网爬行,每到一个网页就用抓取程序将这个网页抓下来,将内容抽取出来,同时抽取超链接,作为进一步爬行的线索。网络爬虫总是要从某个起点开始爬,这个起点叫做种子,你可以告诉它,也可以到一些网址列表网站上获取。2.区别:网络爬虫分类通用爬虫聚集爬虫工作原理从一个或多个初始网页的URL开始,获取初始网页的URL,抓取网页的同时,从当前网页提取相关的URL放入队列中,直到满足程序的停止条件。根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接(爬行的范围是受控的)放到待抓取的队列中,通过一定的搜索策略从队列中选择下一步要抓取的URL,重复以上步骤,直到满足程序的停止条件。不同
4、点1. 增加了一些网页分析算法和网页搜索策略2. 对被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。缺点1. 不同领域、不同背景的用户有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。2. 通用引擎的目标是大的网络覆盖率。3. 只支持关键字搜索,不支持根据语义的搜索。4. 通用搜索引擎对一些像图片、音频等信息含量密集且具有一定结构的数据无法获取。1. 对抓取目标的描述或定义。2. 对网页和数据的分析和过滤。3. 对URL的搜索策略。以上三个是需要解决的问题。算法广度优先
5、算法现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。 基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为: (1)预先给定的初始抓取种子样本; (2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等; (3)通过用户行为确定的抓取目标样例,分为:a) 用户浏览过程中显示标注的抓取样本; b) 通过用户日志挖掘得到访问模式及相关样本。 其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。3.算法/策略名称网页分析算法网页搜索策略分类1基于网络拓扑结构1网页粒度分析算法2网站
6、粒度分析算法3网页块粒度分析算法2基于网页内容 1针对以文本和超链接为主的网页 2针对从结构化的数据源动态生成的网页。 3针对数据介于第一类和第二类之间3基于用户访问行为1深度优先策略2广度优先策略3最佳优先策略一些算法的介绍1 网页分析算法1.1 基于网络拓扑的分析算法 基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对象(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。1.1.1 网页(Webpage)粒度的分析算法 PageRank和HITS算法是最常见的链接分析算法,两者都是通过对网页间链接度的递归和规范化计算,得到每个网页的重要
7、度评价。PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在,但忽略了绝大多数用户访问时带有目的性,即网页和链接与查询主题的相关性。针对这个问题,HITS算法提出了两个关键的概念:权威型网页(authority)和中心型网页(hub)。 基于链接的抓取的问题是相关页面主题团之间的隧道现象,即很多在抓取路径上偏离主题的网页也指向目标网页,局部评价策略中断了在当前路径上的抓取行为。文献21提出了一种基于反向链接(BackLink)的分层式上下文模型(Context Model),用于描述指向目标网页一定物理跳数半径内的网页拓扑图的中心Layer0为目标网页,将网页依据指向目标网页
8、的物理跳数进行层次划分,从外层网页指向内层网页的链接称为反向链接。 1.1.2 网站粒度的分析算法 网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取的关键之处在于站点的划分和站点等级(SiteRank)的计算。SiteRank的计算方法与PageRank类似,但是需要对网站之间的链接作一定程度抽象,并在一定的模型下计算链接的权重。 网站划分情况分为按域名划分和按IP地址划分两种。文献18讨论了在分布式情况下,通过对同一个域名下不同主机、服务器的IP地址进行站点划分,构造站点图,利用类似PageRank的方法评价SiteRank。同时,根据不同文件在各个站点上的分布情况,
9、构造文档图,结合SiteRank分布式计算得到DocRank。文献18证明,利用分布式的SiteRank计算,不仅大大降低了单机站点的算法代价,而且克服了单独站点对整个网络覆盖率有限的缺点。附带的一个优点是,常见PageRank 造假难以对SiteRank进行欺骗。 1.1.3 网页块粒度的分析算法 在一个页面中,往往含有多个指向其他页面的链接,这些链接中只有一部分是指向主题相关网页的,或根据网页的链接锚文本表明其具有较高重要性。但是,在PageRank和HITS算法中,没有对这些链接作区分,因此常常给网页分析带来广告等噪声链接的干扰。在网页块级别(Blocklevel)进行链接分析的算法的基
10、本思想是通过VIPS网页分割算法将网页分为不同的网页块(page block),然后对这些网页块建立pagetoblock和blocktopage的链接矩阵,分别记为Z和X。于是,在pagetopage图上的网页块级别的PageRank为Wp=XZ;在blocktoblock图上的BlockRank为Wb=ZX。已经有人实现了块级别的PageRank和HITS算法,并通过实验证明,效率和准确率都比传统的对应算法要好。1.2 基于网页内容的网页分析算法 基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页的内容从原来的以超文本为主,发展到后来动态页面(或称为Hid
11、den Web)数据为主,后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的400500倍。另一方面,多媒体数据、Web Service等各种网络资源形式也日益丰富。因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不同,将基于网页内容的分析算法,归纳以下三类:第一种针对以文本和超链接为主的无结构或结构很简单的网页;第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,具有较好的
12、结构,显示遵循一定模式或风格,且可以直接访问。 1.2.1 基于文本的网页分析算法 1) 纯文本分类与聚类算法 很大程度上借用了文本检索的技术。文本分析算法可以快速有效的对网页进行分类和聚类,但是由于忽略了网页间和网页内部的结构信息,很少单独使用。 2) 超文本分类和聚类算法2 网页搜索策略2. 广度优先搜索策略 广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大
13、。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。 2. 最佳优先搜索策略 最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。将在第4节中结合网页分析算法作具体的讨论
14、。研究表明,这样的闭环调整可以将无关网页数量降低30%90%。 3搜索引擎原理之网络爬虫是如何工作的?在互联网中,网页之间的链接关系是无规律的,它们的关系非常复杂。如果一个爬虫从一个起点开始爬行,那么它将会遇到无数的分支,由此生成无数条的爬行路径,如果任期爬行,就有可能永远也爬不到头,因此要对它加以控制,制定其爬行的规则。世界上没有一种爬虫能够抓取到互联网所有的网页,所以就要在提高其爬行速度的同时,也要提高其爬行网页的质量。网络爬虫在搜索引擎中占有重要位置,对搜索引擎的查全、查准都有影响,决定了搜索引擎数据容量的大小,而且网络爬虫的好坏之间影响搜索引擎结果页中的死链接的个数。搜索引擎爬虫有深度
15、优先策略和广度优先策略,另外,识别垃圾网页,避免抓取重复网页,也是高性能爬虫的设计目标。爬虫的作用是为了搜索引擎抓取大量的数据,抓取的对象是整个互联网上的网页。爬虫程序不可能抓取所有的网页,因为在抓取的同时,Web的规模也在增大,所以一个好的爬虫程序一般能够在短时间内抓取更多的网页。一般爬虫程序的起点都选择在一个大型综合型的网站,这样的网站已经涵盖了大部分高质量的站点,爬虫程序就沿着这些链接爬行。在爬行过程中,最重要的就是判断一个网页是否已经被爬行过。在爬虫开始的时候,需要给爬虫输送一个URL列表,这个列表中的URL地址便是爬虫的起始位置,爬虫从这些URL出发,开始了爬行,一直不断地发现新的URL,然后再根据策略爬行这些新发现的URL,如此永远反复下去。一般的爬虫都自己建立DNS缓冲,建立DNS缓冲的目的是加快URL解析成IP地址的速度。-