网络爬虫详解
- 格式:doc
- 大小:34.00 KB
- 文档页数:4
■傅一平4聚焦爬虫技术聚焦网络爬虫也就是主题网络爬虫,它增加了链接评价和内容评价模块,其爬行策略实现要点就是评价页面内容以及链接的重要性。
基于链接评价的爬行策略,主要是以Web页面作为半结构化文档,其中拥有很多结构信息可用于评价链接重要性。
还有一个是利用Web结构来评价链接价值的方法,也就是HITS法,通过计算每个访问页面的Authority权重和Hub权重来决定链接访问顺序。
而基于内容评价的爬行策略,主要是将与文本相似的计算法加以应用。
Fish-Search算法就是把用户输入查询词当作主题,在算法的进一步改进后,通过Shark-Search算法就能利用空间向量模型计算页面和主题相关度大小。
而面向主题爬虫与面向需求爬虫会针对某种特定的内容去爬取信息,而且会保证信息和需求尽可能相关。
通用爬虫技术通用爬虫技术也就是全网爬虫,其实现过程如下。
第一,获取初始URL。
初始URL地址可以由用户人为指定,也可以由用户指定的某个或某几个初始爬取网页决定。
第二,根据初始的URL爬取页面并获得新的URL。
获得初始的URL地址之后,需要先爬取对应URL地址中的网页,接着将网页存储到原始数据库中,并且在爬取网页的同时,发现新的URL地址,并将已爬取的URL地址存放到一个URL 列表中,用于去重及判断爬取的进程。
第三,将新的URL放到URL队列中,再于第二步内获取下一个新的URL地址之后,再将新的URL地址放到URL队列中。
第四,从URL队列中读取新的URL,并依据新的URL爬取网页,同时从新的网页中获取新的URL并重复上述的爬取过程。
第五,满足爬虫系统设置的停止条件时,停止爬取。
在编写爬虫的时候,一般会设置相应的停止条件。
如果没有设置停止条件,爬虫便会一直爬取下去,一直到无法获取新的URL 地址为止,若设置了停止条件,爬虫则会在停止条件满足时停止爬取。
通用爬虫技术应用有着不同的爬取策略,其中的广度优先策略以及深度优先策略都比较关键,深度优先策略的实施是依照深度从低到高的顺序来访问下一级网页链接。
100个爬虫实例案例【原创实用版】目录1.爬虫概述2.爬虫实例案例分类3.常见爬虫实例案例详解4.爬虫实例案例的实际应用5.爬虫实例案例的发展前景正文【一、爬虫概述】网络爬虫(Network Crawler),又被称为网页蜘蛛,是一种用来自动浏览万维网的网络机器人。
这种机器人能够模拟人类浏览网页的行为,按照一定的规则,自动地抓取网页信息。
爬虫在互联网领域具有广泛的应用,例如搜索引擎的网络爬虫就会定期地抓取网页,为搜索引擎建立索引库。
【二、爬虫实例案例分类】根据不同的需求和应用场景,网络爬虫实例案例可以分为以下几类:1.搜索引擎爬虫:如百度、谷歌等搜索引擎的网络爬虫。
2.数据采集爬虫:用于抓取各种网站数据,如商品价格、招聘信息等。
3.网站监测爬虫:用于监测网站内容更新,如网站排名、新闻资讯等。
4.网络分析爬虫:用于分析网络结构和流量,如网络拓扑图、路由跟踪等。
5.其他特殊用途爬虫:如用于抓取社交媒体数据、学术论文等特定领域信息的爬虫。
【三、常见爬虫实例案例详解】以下是一些常见的爬虫实例案例:1.搜索引擎爬虫:以谷歌搜索引擎爬虫为例,谷歌爬虫会根据网页的链接结构,逐级抓取网页,并通过网页的 HTML 代码解析出网页的标题、关键词、摘要等信息,最后将这些信息添加到谷歌的索引库中。
2.数据采集爬虫:假设我们需要抓取某个电商网站上的商品价格信息,可以编写一个数据采集爬虫,通过模拟用户访问网站的行为,获取网页源代码,然后使用正则表达式或者 XPath 等技术,解析出商品的价格、名称等信息。
3.网站监测爬虫:以监测某个新闻网站的更新为例,我们可以编写一个网站监测爬虫,定期访问该网站的首页,通过分析网页源代码,判断是否有新的新闻资讯发布。
如果有新内容发布,爬虫可以将新内容抓取回来,以便进一步分析和处理。
【四、爬虫实例案例的实际应用】爬虫实例案例在实际应用中具有广泛的价值,例如:1.搜索引擎:网络爬虫为搜索引擎提供了互联网上的海量信息,使得用户能够快速地找到所需的信息。
网络爬虫工作原理
网络爬虫,又称网络蜘蛛或网络爬行器,是一种自动化程序,用于在互联网上收集信息。
其工作原理可以概括为以下几个步骤:
1. 首先,爬虫程序会选择一个初始的网页作为起点,通常是通过人工指定或从一个列表中选择。
2. 接着,爬虫程序会通过发送HTTP请求,获取起点网页的内容。
这个请求通常由程序模拟成一个普通的浏览器请求,以获取到完整的网页数据。
3. 爬虫程序会对获得的网页内容进行分析和解析,提取出其中的链接形成一个链接池。
这些链接可以是其他网页的URL,也可以是其他资源(如图片、视频等)的URL。
4. 爬虫程序从链接池中选择一个新的链接,并重复第二和第三步,以便获取更多的网页内容和链接。
5. 爬虫程序会不断地重复第四步,直到满足某个停止条件,比如达到指定的网页数量或深度,或者达到了设定的时间限制。
6. 在爬取网页的同时,爬虫程序还会对已经爬取的网页内容进行处理和存储,以便后续的数据分析和使用。
需要注意的是,爬虫程序在进行网页爬取时,需要遵守一定的
道德和法律规范,不得进行恶意攻击、大量请求等行为,以免对网站和服务器造成不必要的负担和损害。
网络爬虫原理网络爬虫(也常被称为“机器人”、“蜘蛛”或“Web爬虫”),是一种搜索引擎技术,可以自动地从网络中搜集信息。
它可以帮助用户收集大量的有用和大量的信息,可以搜集链接、图像、音频、视频等文件。
一台网络爬虫是一台自动化的计算机程序,它可以自动地搜索指定的网站,收集信息并保存在其内部数据库中。
为了实现网络爬虫的功能,它需要经过一定步骤,步骤如下:1、首先,当爬虫程序启动时,它会从一个称为“起始页面” (seed page)特殊页面开始。
个页面通常是搜索引擎列出的某种网页,比如百度搜索结果中排名最靠前的页面,或者某个具体的网站的首页。
2、爬虫会从起始页面开始,抓取其中的链接,并把这些链接添加到搜索队列中,这样爬虫才能继续爬取网络中的页面。
每当爬虫抓取到新的页面时,就会从中提取新的链接,并添加到搜索队列中。
3、爬虫需要定期地抓取新页面,并将页面中的信息抓取到本地数据库中,以供后续使用。
4、当爬虫完成抓取任务时,它会将所有的信息都存储到本地数据库中,便于后续使用。
在现代的网络爬虫中,一般都采用多线程抓取,也就是多个线程同时抓取一个网站,以提高抓取效率。
多线程抓取可以有效地提升爬虫的抓取效率,从而减少抓取所需的时间。
此外,现在网络爬虫还可以采取其它的一些技术,比如机器学习、自然语言处理等,以加强其功能。
最后,为了保护网站的安全,应该合理地使用爬虫,避免给网站带来太大的负担。
网络爬虫除了上述功能之外,还可以用来收集市场信息,从而实现商业利益的最大化。
为此,可以通过爬虫来对公司产品、竞争对手、市场趋势和客户反馈等信息进行监控,以便收集、分析和利用这些信息,实现商业目标和利润最大化。
总的来说,网络爬虫具有一定的优势,能够有效地获取网络信息,实现信息收集和分析,可以帮助企业更好地实现商业利益。
因此,网络爬虫是一项非常有用的技术,可以在商业应用中大量应用。
网络爬虫技术第一篇:网络爬虫技术介绍网络爬虫技术是从网络上自动获取信息的一种技术,也叫做网页抓取或者网络蜘蛛。
它是一个自动地通过互联网采集网络数据的程序。
网络爬虫技术是搜索引擎的关键技术之一。
搜索引擎的底层就是一系列爬虫,通过爬虫从万维网上收集信息,然后通过算法对这些信息进行分析、处理、归类、排序等操作,最后呈现给用户。
网络爬虫技术的原理是模拟客户端向服务器发起请求,从而获取网络信息,并根据特定的规则,抓取需要的内容,保存到自己的数据库中。
网络爬虫技术的应用非常广泛,可以用于搜索引擎、数据挖掘、价格比较、信息监控等领域。
其中,搜索引擎应用最为广泛。
搜索引擎需要在短时间内从互联网上获取大量的网页,并对这些网页进行处理,将其中的信息提取出来,进行组织、处理、归纳、分析、挖掘,最终返回给用户。
为了避免网络爬虫造成的网站负荷和数据安全问题,很多网站会通过技术手段来限制网络爬虫的访问。
一些常用的限制手段包括:robots.txt文件、访问频率限制、验证码验证,以及反爬虫策略,如IP封锁、JS反爬虫等。
网络爬虫技术不仅有着广泛的应用范围,而且也有着复杂的技术要求。
爬虫涉及到的技术领域非常广泛,包括但不限于:Java开发、Python编程、分布式计算、数据库管理、网络安全等。
同时,最为关键的是对抓取的数据进行分析,得出有效的信息,这需要掌握一定的数据分析技能。
网络爬虫技术的出现,使得人们可以更加方便地获取互联网上的信息,提高了互联网信息的利用价值。
然而,随着人们对网络爬虫技术的使用,也引发了一系列的争议,包括隐私问题、版权问题、以及对于商业利用的限制问题。
总之,网络爬虫技术是互联网信息采集处理与利用的关键技术。
随着人们对它的需求日益增加,未来网络爬虫技术将会得到进一步的发展和应用。
第二篇:网络爬虫技术的发展与挑战网络爬虫技术自20世纪90年代发展以来,一直在不断地发展和创新。
一方面,随着互联网的快速发展和互联网用户行为方式的不断演进,网络爬虫的使用也不断发展出各种新的应用形态;另一方面,各种阻挡网络爬虫的技术和策略也不断更新,对爬虫技术提出了新的挑战。
Python网络爬虫实践教程一、什么是网络爬虫网络爬虫,也称为网络蜘蛛或网络机器人,是一种自动获取互联网信息的程序工具。
通过模拟浏览器行为,爬虫程序可以访问网页、提取网页中的数据,在大规模数据采集、搜索引擎、数据分析等领域发挥着重要作用。
二、网络爬虫的基本原理网络爬虫的基本原理是通过发送HTTP请求,并解析响应得到的HTML文档来获取网页数据。
首先,我们需要使用Python中的requests库发送网络请求,并获得服务器的响应。
然后,通过解析HTML文档,提取出我们需要的数据。
三、准备工作在开始编写网络爬虫之前,我们需要安装Python以及相关的库。
首先,需要安装Python解释器和pip包管理工具。
然后,使用pip安装requests、beautifulsoup和lxml等库。
四、发送HTTP请求在编写爬虫程序之前,我们需要了解如何使用Python发送HTTP请求。
使用requests库发送GET请求非常简单,只需要调用get方法,并提供目标网址即可。
如果需要发送POST请求,同样使用post方法,并在参数中传递需要提交的数据。
五、解析HTML文档解析HTML文档是爬虫中非常重要的一步。
Python提供了多种解析HTML的库,其中比较常用的是beautifulsoup和lxml。
通过指定解析器,我们可以轻松地提取出HTML文档中的各个元素,并进行进一步的处理。
六、处理反爬机制为了阻止爬虫程序的访问,许多网站采取了反爬机制,例如设置验证码、限制IP访问频率等。
对于这些反爬措施,我们可以通过使用代理IP、设置请求头信息、使用验证码识别技术等方法来绕过。
七、数据存储与分析在爬虫过程中,我们通常需要将获取的数据进行存储和分析。
常用的数据存储方式包括将数据保存到数据库、文本文件、Excel 表格或者CSV文件中。
而要对数据进行分析,可以使用Python中的数据分析库,如pandas、numpy等。
八、实践案例:爬取豆瓣电影数据为了更好地理解网络爬虫的实践过程,我们以爬取豆瓣电影数据为例进行讲解。
爬虫的原理
爬虫,又称网络爬虫,是一种按照一定的规则,自动地抓取互联网信息的程序或脚本。
爬虫的原理主要包括以下几个方面,网页抓取、网页解析、数据存储和更新等。
首先,爬虫的原理之一是网页抓取。
爬虫程序通过发送HTTP请求,获取网页的HTML源代码。
在发送请求的过程中,爬虫需要模拟浏览器的行为,包括发送请求头、处理Cookie等,以便获取完整的网页内容。
在获取网页内容后,爬虫需要对网页进行解析。
其次,爬虫需要进行网页解析。
网页解析是指对获取的HTML源代码进行解析和提取有用信息的过程。
爬虫程序可以利用正则表达式、XPath、CSS选择器等技术,从HTML源代码中提取出需要的数据,如链接、文本、图片等。
解析完网页后,爬虫需要将提取的数据进行存储。
然后,爬虫需要进行数据存储和更新。
爬虫程序通常会将抓取到的数据存储到数据库或者本地文件中,以便后续的数据分析和处理。
同时,爬虫还需要定期更新已经抓取的数据,以保证数据的及时性和准确性。
除了以上几个主要的原理外,爬虫还需要考虑一些其他的问题。
比如,爬虫需要处理网页的反爬机制,避免被网站封禁IP或者账号。
此外,爬虫还需要考虑并发抓取、分布式部署、数据去重等问题,以提高抓取效率和数据质量。
总的来说,爬虫的原理主要包括网页抓取、网页解析、数据存储和更新等几个方面。
通过对这些原理的深入理解,可以帮助开发者更好地设计和实现爬虫程序,从而更高效地抓取和处理互联网上的海量数据。
干货:一文看懂网络爬虫实现原理与技术(值得收藏)01 网络爬虫实现原理详解不同类型的网络爬虫,其实现原理也是不同的,但这些实现原理中,会存在很多共性。
在此,我们将以两种典型的网络爬虫为例(即通用网络爬虫和聚焦网络爬虫),分别为大家讲解网络爬虫的实现原理。
1. 通用网络爬虫首先我们来看通用网络爬虫的实现原理。
通用网络爬虫的实现原理及过程可以简要概括如下(见图3-1)。
▲图3-1 通用网络爬虫的实现原理及过程1.获取初始的URL。
初始的URL地址可以由用户人为地指定,也可以由用户指定的某个或某几个初始爬取网页决定。
2.根据初始的URL爬取页面并获得新的URL。
获得初始的URL地址之后,首先需要爬取对应URL地址中的网页,爬取了对应的URL地址中的网页后,将网页存储到原始数据库中,并且在爬取网页的同时,发现新的URL地址,同时将已爬取的URL地址存放到一个URL列表中,用于去重及判断爬取的进程。
3.将新的URL放到URL队列中。
在第2步中,获取了下一个新的URL地址之后,会将新的URL地址放到URL队列中。
4.从URL队列中读取新的URL,并依据新的URL爬取网页,同时从新网页中获取新URL,并重复上述的爬取过程。
5.满足爬虫系统设置的停止条件时,停止爬取。
在编写爬虫的时候,一般会设置相应的停止条件。
如果没有设置停止条件,爬虫则会一直爬取下去,一直到无法获取新的URL地址为止,若设置了停止条件,爬虫则会在停止条件满足时停止爬取。
以上就是通用网络爬虫的实现过程与基本原理,接下来,我们为大家分析聚焦网络爬虫的基本原理及其实现过程。
2. 聚焦网络爬虫聚焦网络爬虫,由于其需要有目的地进行爬取,所以对于通用网络爬虫来说,必须要增加目标的定义和过滤机制,具体来说,此时,其执行原理和过程需要比通用网络爬虫多出三步,即目标的定义、无关链接的过滤、下一步要爬取的URL地址的选取等,如图3-2所示。
▲图3-2 聚焦网络爬虫的基本原理及其实现过程1.对爬取目标的定义和描述。
爬虫技术和网站数据抓取方法随着互联网的发展,数据成为了一种可贵的资源,越来越多的人开始关注数据的获取和利用。
在数据的获取中,爬虫技术和网站数据抓取方法已经成为非常流行的方式之一。
本文将简单介绍爬虫技术和网站数据抓取方法,并探讨它们的应用。
一、爬虫技术1.1 爬虫的概念爬虫(Spider)是指一种在互联网上自动获取信息的程序。
它模拟浏览器行为,通过对网页中的链接进行解析和跟踪,自动获取网页中的数据。
爬虫技术主要用于数据抓取、搜索引擎、信息源汇聚等领域。
1.2 爬虫的工作原理爬虫的工作过程可以简单概括为先请求网页,再解析网页,最后抽取数据三个步骤。
首先,爬虫会发送请求到指定网页,获取网页的源代码。
然后,爬虫会对获取的网页源代码进行解析,找到网页中包含的链接和数据。
最后,爬虫会抽取有价值的数据,并进行存储和处理。
1.3 爬虫的分类根据不同的目的和需求,爬虫可以分为通用网页爬虫、数据整合爬虫、社交媒体爬虫和搜索引擎爬虫等。
通用网页爬虫:主要用于搜索引擎,通过搜索引擎抓取尽可能多的网页,并且对网页进行索引,提高搜索引擎的检索效率。
数据整合爬虫:主要用于整合互联网上的数据,如新闻、股票数据、房价数据等,以便于大众获取和使用。
社交媒体爬虫:主要用于在社交媒体平台上获取用户的信息,如微博、微信等。
搜索引擎爬虫:主要是为了让搜索引擎收录网站的数据,从而提升网站排名。
二、网站数据抓取方法2.1 网站数据抓取的目的网站数据抓取主要是为了收集和分析网站上的数据,从而了解网站的性质、变化、趋势,为网站提供参考和决策依据。
2.2 网站数据抓取的工具与技术网站数据抓取可以使用多种工具和技术,如爬虫技术、API接口、网站抓取软件等。
(1)爬虫技术爬虫技术是一种高效的网站数据抓取方式,可以快速有效地获取网站上的数据。
但是需要注意网站的反爬机制,防止被网站封禁或者被告上法庭。
(2)API接口API(Application Programming Interface)接口是一种标准化的数据交换格式,是实现不同应用程序之间的数据传递的重要方式之一。
网络爬虫详解一、爬虫技术研究综述引言随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。
搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
但是,这些通用性搜索引擎也存在着一定的局限性,如:(1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
(2) 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
(3) 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频/视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
(4) 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。
聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。
与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
1 聚焦爬虫工作原理及关键技术概述网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件,如图1(a)流程图所示。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。
然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,如图1(b)所示。
另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:(1) 对抓取目标的描述或定义;(2) 对网页或数据的分析与过滤;(3) 对URL的搜索策略。
抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。
而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。
这两个部分的算法又是紧密相关的。
2 抓取目标描述现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。
根据种子样本获取方式可分为:(1)预先给定的初始抓取种子样本;(2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;(3)通过用户行为确定的抓取目标样例,分为:a) 用户浏览过程中显示标注的抓取样本;b) 通过用户日志挖掘得到访问模式及相关样本。
其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。
现有的聚焦爬虫对抓取目标的描述或定义可以分为基于目标网页特征,基于目标数据模式和基于领域概念三种。
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。
具体的方法根据种子样本的获取方式可以分为:(1)预先给定的初始抓取种子样本;(2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;(3)通过用户行为确定的抓取目标样例。
其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。
二、爬虫技术研究综述基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合一定的模式,或者可以转化或映射为目标数据模式。
另一种描述方式是建立目标领域的本体或词典,用于从语义角度分析不同特征在某一主题中的重要程度。
三、网页搜索策略网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。
深度优先在很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。
3.1 广度优先搜索策略广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。
该算法的设计和实现相对简单。
在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。
也有很多研究将广度优先搜索策略应用于聚焦爬虫中。
其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。
另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。
这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。
3.2 最佳优先搜索策略最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。
它只访问经过网页分析算法预测为“有用”的网页。
存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。
因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。
将在第4节中结合网页分析算法作具体的讨论。
研究表明,这样的闭环调整可以将无关网页数量降低 30%~90%。
四、网页分析算法网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。
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)动态生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格,且可以直接访问。