网页抓取外文翻译资料
2022-11-30 16:50:29
Crawling the Web
Summary. The large size and the dynamic nature of the Web highlight the need for continuous support and updating of Web based information retrieval systems. Crawlers facilitate the process by following the hyperlinks in Web pages to automat-ically download a partial snapshot of the Web. While some systems rely on crawlers that exhaustively crawl the Web, others incorporate focus' within their crawlers to harvest application or topic specimacr;c collections. We discuss the basic issues related with developing a crawling infrastructure. This is followed by a review of several topical crawling algorithms, and evaluation metrics that may be used to judge their performance. While many innovative applications of Web crawling are still being invented, we take a brief look at some developed in the past.
1 Introduction
Web crawlers are programs that exploit the graph structure of the Web to move from page to page. In their infancy such programs were also called wanderers, robots, spiders, macr;sh, and worms, words that are quite evocative of Web imagery. It may be observed that the noun `crawler is not indicative of the speed of these programs, as they can be considerably fast. In our own experience, we have been able to crawl up to tens of thousands of pages within a few minutes.4
From the beginning, a key motivation for designing Web crawlers has been to retrieve Web pages and add them or their representations to a local repos-itory. Such a repository may then serve particular application needs such as those of a Web search engine. In its simplest form a crawler starts from a seed page and then uses the external links within it to attend to other pages.
4 on a Pentium 4 workstation with an Internet2 connection.
- G. Pant, P. Srinivasan, F. Menczer
The process repeats with the new pages oreg;ering more external links to follow, until a suplusmn;cient number of pages are identimacr;ed or some higher level objective is reached. Behind this simple description lies a host of issues related to net-work connections, spider traps, canonicalizing URLs, parsing HTML pages, and the ethics of dealing with remote Web servers. In fact a current generation Web crawler can be one of the most sophisticated yet fragile parts [5] of the application in which it is embedded.
Were the Web a static collection of pages we would have little long term use for crawling. Once all the pages had been fetched to a repository (like a search engines database), there would be no further need for crawling. However, the Web is a dynamic entity with subspaces evolving at direg;ering and often rapid rates. Hence there is a continual need for crawlers to help applications stay current as new pages are added and old ones are deleted, moved or modimacr;ed.
General purpose search engines serving as entry points to Web pages strive for coverage that is as broad as possible. They use Web crawlers to maintain their index databases [3] amortizing the cost of crawling and indexing over the millions of queries received by them. These crawlers are blind and exhaustive in their approach, with comprehensiveness as their major goal. In contrast, crawlers can be selective about the pages they fetch and are then referred to as preferential or heuristic-based crawlers [10, 6]. These may be used for building focused repositories, automating resource discovery, and facilitating software agents. There is a vast literature on preferential crawling applica-tions, including [15, 9, 31, 20, 26, 3]. Preferential crawlers built to retrieve pages within a certain topic are called topical or focused crawlers. Synergism between search engines and topical crawlers is certainly possible with the lat-ter taking on the specialized responsibility of identifying subspaces relevant to particular communities of users. Techniques for preferential crawling that focus on improving the freshness' of a search engine have also been suggested [3].
Although a signimacr;cant portion of this chapter is devoted to description of crawlers in general, the overall slant, particularly in the latter sections, is towards topical crawlers. There are several dimensions about topical crawlers that make them an exciting object of study. One key question that has moti-vated much research is: How is crawler selectivity to be achieved? Rich contex-tual aspects such as the goals of the parent application, lexical signals within the Web pages and also features of the graph built from pages already seen | these are all reasonable kinds of evidence to exploit. Additionally, crawlers can and often do direg;er in their mechanisms for using the evidence available to them.
A second major aspect that is important to consider when studying crawlers, especially topical crawlers, is the nature of the crawl task. Crawl characteristics such as queries and/or keywords provided as input criteria to the crawler, user-promacr;les, and desired properties of the pages to be fetched (similar pages, popular pages, authoritative pages etc.) can lead to signimacr;-cant direg;erences in crawler design and implementation. The task could be con-
Crawling the Web |
3 |
strained by parameters like the maximum number of pages to be fetched (long crawls vs. short crawls) or the available memory. Hence, a crawling task can be viewed as a constrained multi-objective search problem. However, the wide variety of objective functions, coupled with the lack of appropriate knowledge about the search space, make the problem a hard one. Furthermore, a crawler may have to deal with optimization issues such as local vs. global optima [28].
The last key dimension is regarding crawler evaluation strategies neces-sary to make comparisons and determine circumstances under which one or
剩余内容已隐藏,支付完成后下载完整资料
网页抓取
总结:网络的大尺寸和动态特性突出了网络信息检索系统的不断支持和更新的需要。爬虫方便处理的超链接在网页自动下载的部分网页快照的。虽然有些系统 依靠爬虫抓取网页,详尽,别人将焦点”在他们的爬虫收获应用或主题具体收藏。我们讨论的基本问题与发展的爬行基础设施。这是其次的几个主题爬行算法的 审查,并评价指标,可用于判断其性能。虽然许多创新的网页抓取的应用程序仍然被发明,我们采取了一些发达国家的简要回顾。
- 引言
网络爬虫是一种程序,利用Web图结构移动页面。在起步阶段,这样的程序也被称为流浪者,机器人,蜘蛛和蠕虫,词是相当令人回味的 Web图像。可以观察到,名词“爬行”是不表示这些程序的速度,因为它们可以是相当快。在我们自己的经验中,我们可以在几分钟内爬到几万页。
从一开始,设计网络爬虫的关键动机被检索的网页添加或表示一个地方回购抑菌。这样的存储库可能会为特定的应用程序服务,例如:一个网络搜索引擎。在其最简单的形式,一个爬虫从一个种子页开始,然后使用它的外部链接,以参加其他页面。
这个过程重复新页工程遵循更多的外部链接,直到有效页数,或者更高层次的目的就达到了。在这个简单的描述是一个主机的网络连接,蜘蛛陷阱的相关问题,URL解析HTML页面,并处理与远程Web服务器的伦理。事实上,目前的一代网络爬虫可以是一个最复杂但脆弱的部分的应用程序,它被嵌入。
是网页的静态集合,我们将有小的长期使用爬行。一旦所有的页面都被拿来当一个库(像一个搜索引擎的数据库),就不需要再爬行了。然而,网络是 一个具有空间工程往往迅速演变的动态实体。因此有爬虫帮助应用程序保持现状为添加新的页面和旧的被删除的持续需求,移动或修改版。
通用搜索引擎服务作为切入点,以网页的努力,尽可能广泛的覆盖面。他们使用的网络爬虫来维持他们的索引数据库摊销的抓取和索引查询的数以百万计的成本受到他们。这些爬虫在他们的方法是盲目的、详尽的、综合性为主要目标。相比之下,爬虫可以对页他们取选择性则称 为优先或启发式搜索[ 10,6 ]。这些可用于构建集中的存储库,自动化资源发现,并促进软件代理。有优惠爬行应用的大量文献资料,包括[ 15,9,31,20,26,3 ]。建立优先爬虫检索在一定主题的网页称为主题或主题。搜索引擎和主题爬虫之间的协同作用可能会与后者以识别特定用户群体相关的子空间的专业责任。优先爬 行的技术,专注于提高新鲜度的搜索引擎也被建议。
虽然有macr;不能部分本章爬虫一般的描述,整体倾斜,特别是在后面的部分是对主题爬虫。有关于主题爬虫,让他们一个令人振奋的研究对象的几个维度。一个关键问题,莫蒂有了大量的研究:爬虫的选择性来实现如何丰富的语境方面如母应用目标,信号词在网页和功能的图由页已经看到|这些都是合理利用各 种证据。此外,爬虫可以和经常地reg;ER在其机制的运用证据提供给他们。
第二个主要的方面,重要的是要考虑在研究爬虫,尤其是主题爬虫的抓取,是任务的性质。爬行等作为输入提供标准的履带式查询和/或关键词的特征,用户,和所需的性能的页面被读取(相似的页面,欢迎页面,权威页面等)可能会导致显着爬虫的设计与实现。因此,爬行任务可以被看作是一个约束的多目标搜索问题。然而,各种各样的目标函数,再加上缺乏适当的知识的搜索空间,使问题很难。此外,一个爬虫可能要处理的优化问题,如局部与全局最优解。
最后的关键尺寸是以履带式评价策略的必要性进行比较和确定的情况下,一个或另一个爬虫的工作最好。比较必须是公平的,用眼睛向拔出统计学显不能二之处了。这不仅需要一个高效的一些爬行运行而且合理的方法,考虑履带输出时间的性质。不能挑战的评价包括对特定的话题或查询相关集一般不可用。因此,评价通常依赖于德宁措施评估网页重要性。
本章的第一部分介绍了macr;爬行的基础设施和在这个描述基本概念在爬行。在此,我们回顾了一些在文献中建议的爬行算法。然后我们讨论评估目前的方法比较不同地爬虫的性能。最后,我们列出了一些应用程序的Web爬虫的使用。
- 建立爬行基础
图1显示一个基本顺序爬虫。履带保持列表未访问URLs称为前沿。这份名单是种子URL可以提供由用 户或另一个程序初始化。每个爬行环涉及挑选从前沿爬取下的URL,通过HTTP URL对应的网页,解析网页的URL检索提取和应用规范信息,和macr;最后到边境添加未访问URLs。在URL添加到前沿,他们可以被分配一个分数,表示 估计的效益macr;T访问URL对应的网页。爬行过程可以在一定数量的网页被抓取时终止。如果爬虫准备爬行另一页,而边界是空的,则该情况将信号信号为爬行器的 一个死角。爬虫没有新的页面来取,因此它停止。
爬行可以看作是一个图搜索问题。网络被看作是一个大的图形,其节点和超链接的网页,其边缘。一个爬 虫开始在几个节点(种子),然后如下的边缘,以达到其他节点。获取页面的过程,并提取其内部的链接,类似于扩展图搜索中的节点。一个主题爬虫试图跟踪的边缘,预计将导致相关的主题图的部分。
图 1
2.1 Frontier列表
Frontier是一个爬虫列表,包含未访问过的网页的URL的待办事项列表。在图搜索术语的领域是未开放列表节点。虽然它可能需要存储领域对大型爬虫的磁盘,我们将代表前沿作为一个简单的内存数据结构。根据可用的内存,可以决定的最大规模的前沿。由于大量的内存可在个人电脑上,一个100000个网 址或更多的前沿规模是不例外。给定一个最大的前沿尺寸,我们需要一个机制来决定哪个网址忽略这个限制时。请注意,边界可以macr;将相当快的网页抓取。一个可以 预期的60000个网址的前沿与爬行的10000页,平均约7个链接,每页。
边境可能作为一个FIFO队列,在这种情况下,我们有一个广度RST爬虫,可以盲目地抓取网页实现。网址,以抓取下来自队列的头部和新的网址添加到队列的尾部。由于边境的规模有限,我们需要确保我们不添加重 复的网址进入前沿。线性搜索发现如果新提取的URL已经在边疆是昂贵的。一个解决方案是分配一些可用的内存来维持一个单独的哈希表(以网址为密钥)来存 储每一个快速查找的前沿网址。哈希表必须与实际的边界保持同步。一个更耗时的选择是保持前沿本身作为一个哈希表(再次以网址为关键字)。这将为避免重复的 网址提供快速查找。然而,每一次的爬虫需要一个网址来抓取,它需要搜索和挑选的网址与最早的时间戳(时间,当一个网址被添加到列表)。
如果边界是一个优先队列我们有优惠的履带也被称为最RST爬虫的实现。优先队列的动态数组,可以始终保持在未访问URLs估计评分排序。在每一步,最好的网址是从队列的头。一旦对应的页面被取出来,该网址是从它的提取,并取得了一些启发式的基础上。然后将它们添加到前沿,以保持优先级队列的 顺序。我们可以避免重复的网址在前沿,保持一个单独的哈希表查找。一旦边界的最大尺寸(最大)超过,只有最好的最大的网址是保持在前沿。
如果履带NDS边疆空的时候需要下一个URL爬行,爬行的过程来停止。与一个大的价值最大和几个种子网址的前沿将很少到达空状态。有时,一个爬虫可能会遇到蜘蛛的陷阱,导致它大量地不同的URL指向同一页面。缓解这个问题的一个方法是通过限制爬虫从给定域访问的页面的数量。与边疆相 关的代码可以确保每个连续的K(100)的网址,由履带接,包含从全面质量ED主机名唯一的URL(例如www.cnn。com)。作为不良反应方 面,爬虫是不礼貌的访问相同的网站太多,并抓取页面更趋于多样化。
2.2 历史连接和网页存储库
爬行历史是一个时间戳列表的网址,被抓取的爬虫等,它显示了爬虫的路径通过网络从种子页面。一个网址进入到历史上只有取了相应的页面。 这一历史可用于后抓取分析和评价。例如,我们可以将一个值与每个页面的爬行路径和确定意义macr;不能事件(如优良资源的发现)。虽然历史可以存储偶尔的磁盘, 它也保持在内存中的数据结构。这提供了一个快速查找,以检查网页是否已被抓取或不。这个检查是避免重复页面,也避免添加URL抓取网页的有限大小的前沿重 要。这是规范的URL重要原因相同(2.4节)之前,将它们添加到历史。
一旦页面被取出,它可以存储/索引的主应用(如搜索引擎)。在其最简单的 形式,一个页面库可以存储抓取页面作为单独的LES。在这种情况下,每个页面必须映射到一个独特的乐的名字。一个办法是地图的每个页面的URL使用某 种散列函数的碰撞概率低,紧凑的字符串(用于乐名称的唯一性)。我们使用MD5单向散列函数,提供一个128位的散列代码。MD5等的实现哈希算法是现成的,在不同的编程语言(例如,参考java 2安全框架)。128位散列值是转换成一个32个字符的十六进制等效得到文件名。例如,对http://www.uiowa.edu/内容存储到一个文件“160766577426e1d01fcb7735091ec584。这样我们有固定长度
任意大小的uizls文件名。(当然,如果应用程序需要缓存只有几千页,一个可以使用一个简单的哈希机制。网页库也可以如果一直爬用来检查在转换到32个字符的文件名和检查存在的—在库文件的存在。在某些情况下,这可能会导致不必要的在内存历史数据结构中的应用。
2.3 抓取
为了获取一个网页,我们需要一个HTTP客户端发送一个HTTP请求一个页面并读取响应。客户需要超时确保不需要花费不必要的时间在慢服务器或在阅读大页面。事实上,我们通常会限制客户端下载只有在页面的第一10-20kb。客户端需要解析响应状态码和重定向报头。我们还可以分析和存储最后修改的标题,以确定文档的年龄。误差—在页面抓取过程中,检查和异常处理是非常重要的因为我们需要用相同的代码处理数以百万计的远程服务器。在还可能有利于收集统计超时和状态码用于识别问题或自动更改超时值。现代编程语言如java和perl提供非常简单的常从网络获取网页的多个编程接口。然而,在使用高层次的接口,它可能是更难的一个必须小心找到低水平的问题。例如,你可能想使用java。Socket类发送HTTP请求而不是使用更现成的J ava.net.httpurlconnection类。
从网络上抓取网页的任何讨论都没有浅谈机器人排除协议。该协议提供了一个机制—Web服务器管理员沟通他们的文件访问策略机制—联系;更具体地确定厅文件可能不被爬虫访问。这是保持一个文件名为机器人。txt根目录下在Web服务器(如HTTP:/ / www.biz。UIOWA .edu /机器人。txt)。这文件提供不同的用户代理访问策略(机器人或爬虫)。一用户代理值“* denotes任何爬虫做默认策略文件中不匹配其他用户代理值。一些不允许参赛可为用户代理提供。
不允许字段不能由一个爬虫匹配用户代理检索。当一个爬虫想要从一个网络服务器检索一个网页时,它必须先获取合适的robots.txt文件,确保uizl取
是不允许。此排除协议的更多细节可以在http://www.robotstxt.org/wc/norobots.html。缓存的效率是有效的一个由爬虫最近访问的一些服务器的访问策略。这要避免访问robots.txt文件每次你需要拿一uizl。然而,人们必须确保高速缓存条目保持足够的新鲜。
2.4解析
一旦页面已被取出,我们需要分析提取信息的内容—这将是可能的,并可能引导未来的履带行走路径。解析可能意味着简单的超链接} uizl提取或它可能涉及更多的汤姆整理的HTML内容为分析HTML的复杂过程标签树(见2.5节)。解析也可能涉及步骤来转换前交易的一个典型的形式,去除停用词从页面的内容和干剩下的话。这些组件的解析描述下一个。
3 爬行算法
现在,我们讨论了一些爬行算法,在文学。请注意,许多这些算法是最好的第一个变化方案。不同的是他们用得分并且启发式一些算法的适应和调整其参数之前或在爬行过程中。
3.1 朴素爬虫
一个天真的最好先是一个详细的评估程序在履带式评价。这个履带代表取网页作为一个向量的话加权的发生频率。爬虫,然后计算该网页的余弦相似性查询或描述用户提供的。
3.2 聚焦爬虫
聚焦爬虫基于超文本分类器的开发爬虫的基本思想是在一个主题分类中分类的分类目录。首先,爬虫需要主题分类等雅虎或ODP。9此外,用户提供感兴趣的例子uizls(如那些在书签文件)。例uizls得到自动分类到不同类别的分类。通过一个互动的过程中,用户可以 正确的自动分类,添加新的类别的分类和标记的一些类别为“好”(即,感兴趣的用户)。履带采用实例uizls建立贝叶斯分类器,能找到的概率(PR(C } P)),一个抓取网页P属于C类的分类。请注意,通过定义公关(转)= 1,其中的分类的分类。
4 爬虫评价
在一般意义上,一个爬虫(特别是一个主题爬虫可以对检索“好”页的能力。然而,一个主要的障碍是问题认识到这些好的页面。在实际用户的操作环境中
判断网页的相关性,这些都是爬着让我们确定的爬行是成功的或不。不幸的是,有意义的实验对抓取的网页真正的用户是非常有问题的。例如网络的规模表明,为了获得一个合理的概念爬行的有效性必须进行大量的抓取,即涉及大量的用户。
总的来说,这是比较局部爬虫在大量重要主题和任务。这将使我们能够确定统计意义特别的好处,我们可以观察到爬虫。履带式评价研究需要一套合适的指标。最近的研究揭示了几个创新绩效措施。但首先我
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[29253],资料为PDF文档或Word文档,PDF文档可免费转换为Word