基于云计算的网络爬虫架构外文翻译资料

 2021-11-05 09:11

英语原文共 8 页

基于云计算的网络爬虫架构

Mehdi Bahrami1, Mukesh Singhal2 and Zixuan Zhuang3 Cloud Lab

University of California, Merced, USA

1IEEE Senior Member, MBahrami@UCMerced.edu 2 IEEE Fellow, MSinghal@UCMerced.edu 3ZZhuang@UCMerced.edu

摘要— 网络爬虫作为工具为应用与服务在互联网网上检索有趣的和相关联的信息。举个例子,搜索引擎利用网络爬虫来索引整个互联网. 构造网络爬虫要面对一些挑战,如当网络爬虫想要检索具有复杂连接的链接时面对的链接和高密集度的计算需求的复杂性。 另一个问题是索引链接以及非结构化数据,如二进制文件,视频或图像所需要的巨量存储空间。 随着互联网上的信息量迅速增加,搜索请求可能以各种格式(包括非结构化数据)来搜索数据。因此在有关网络爬虫的文献中并不不存在有基于云的架构,可以有效地解决网络爬虫高度密集的计算和存储问题的文献。 云计算服务模型为弹性资源和非结构化数据提供支持,并提供按使用付费的功能。同时允许各个企业运行自己的网络爬虫来爬虫或限制网络主机。 在本文中,我们提出了一种基于云的网络爬虫架构,它基于云计算服务和MapReduce技术。 这样的网络爬虫程序允许我们使用分布式代理程序对互联网进行爬取,并且每个代理程序都将自己的查找结果存储在Cloud Azure Table(NoSQL数据库)中。同时该网络爬虫程序还可以在Azure Blob存储上存储非结构化和大量数据。 我们分析了所提出的网络爬虫的性能和可扩展性,并且描述了其优于传统分布式网络爬虫的优势。

关键词— 网络爬虫; 云计算; 大数据; 多媒体网络爬虫; 基于云的网络爬虫。

  1. 介绍

自20世纪60年代后期以来,互联网呈指数增长。 据报道,2012年有超过24亿人使用互联网[1]。 从全球来看,到2018年,人均互联网流量将达到14GB,高于人均5GB[2]。 收集和挖掘如此大量的内容已变得非常重要但也非常困难。因为在这样的情况下,传统的网络爬虫已不具有成本效益,因为它们成本昂贵且耗时。 因此,分布式网络爬虫一直是一个活跃的研究领域。

作为搜索引擎的主要组成部分,分布式网络爬虫可以轻松地在Internet上收集信息。 单进程抓取工具以URL列表开头,访问这些URL并下载相应的网页。 然后,Web爬虫程序识别页面中的超链接,并将它们添加到URL列表中,以便将来对链接进行爬虫。 分布式Web爬虫程序具有多个用于爬虫URL的代理程序; 但是,大多数分布式Web爬虫程序需要大量服务器来并行抓取Web内容。 不幸的是,在大多数情况下,个人和小型企业不可能拥有太多台服务器。 请注意,像微软这样的大公司拥有超过一百万台地理位置分布的服务器。

在本文中,我们介绍了一种采用云计算技术的可扩展Web爬虫。 基于云的Web爬虫程序允许人们收集和挖掘Web内容,而无需购买、安装和维护任何基础架构。 云计算技术提供了一种有效且高效的资源使用方式,它允许用户在云上构建其虚拟IT部门。 它允许用户从小资源开始,然后按需增加额外的计算和存储容量。 云计算服务为分布式地理网络爬虫提供分布式系统并支持所需的高性能计算(HPC)[3]。 此外,云计算服务还为用户提供了可扩展性功能。 它允许用户随时根据需要添加或删除爬虫代理; 因此,用户不必担心互联网的大小或需要分析多少数据,因为用户可以按需添加新资源(处理器和存储容量)。

本文的其余部分安排如下:在第二部分中,我们回顾了传统网络爬虫的文献,并解释了每个现有网络爬虫的主要问题。 在第III节中,我们介绍了Web爬虫程序的要求。 在第IV节中,我们介绍了我们提出的基于云的Web爬虫程序,介绍了其体系结构,并概述了其在Azure云平台中的实现。 在第五节中,我们提供了实验结果。 在第六节中,我们讨论了提议的Web爬虫的优点。 在第VII节中,我们提出了建议的基于云的Web爬虫程序体系结构与其他现有Web爬虫程序之间的比较。 最后,在第八节中,我们总结了我们提出的研究。

  1. 背景与相关工作

美国国家标准与技术研究院(NIST)将云计算定义为“一种模型,用于实现对可配置计算资源共享池(例如,网络,服务器,存储,应用程序和服务)的无处不在,方便,随需的网络访问。 通过最少的管理工作或服务提供商互动来快速配置和发布“[4]。 云计算有以下五个基本特征:

    1. 按需自助的服务

诸如计算机器和/或存储设备之类的服务可以根据用户的需求按比例放大或缩小,而无需与提供者进行任何交互。 此功能允许我们建议的Web爬虫程序根据需要快速添加代理。

    1. 广泛的网络访问平台

可以通过任何设备和任何平台(例如,移动电话,平板电脑,笔记本电脑和工作站)通过网络访问云计算资源。 此功能为我们提议的Web爬虫程序提供了平台独立性。

978-1-4799-1866-9/15/$31.00 copy;2015 IEEE 216

    1. 庞大的资源池

云计算提供商将计算资源集中在一起,并根据用户的要求将这些资源分配给用户。 云计算提供商通常在多个地方拥有多个分布式服务器; 因此,此功能允许Web爬虫程序具有按地理位置分布的资源池。.

    1. 可伸缩的服务资源

可以根据需要扩大或缩小资源。 用户可以随时获得所需的资源。 此功能为Web爬虫程序提供可伸缩性,并允许用户在不需要时添加/删除代理。

    1. 完备的监控服务

消费者根据资源使用情况收费。 云提供商监控并测量所有用户的资源使用情况。 这称为按使用付费模式。 此功能允许用户通过删除不需要的代理来降低成本。

自从Matthew Gray的Wanderer于1993年部署第一台网络爬虫[5]以来,网络爬虫一直是一个活跃的研究课题。 传统的网络抓取工具只能在给定时间内下载有限数量的网页。 近年来,随着互联网的指数增长,研究人员将重点放在构建分布式网络爬虫上。 分布式Web爬虫程序具有多个服务器,并且可以并行爬取网络信息以提高性能。.

徐等人引入了面向用户的网络爬虫[6],它能自适应地爬行互联网上的社交媒体内容,以满足对用户特定的在线数据源获取要求。 同时他们开发了一个反馈组件,可以估算网页的效用得分。 此分数可用于优化Web爬虫程序的爬虫决策。 他们使用人工标记的示例网页来训练他们的系统。 随后,他们通过使用排名函数来确定搜索结果的优先级列表,以使用预测函数来测量各个搜索结果页面的效用。 他们在癌症流行病学研究的背景下评估了他们的爬虫。

Codenotti等人 [7]介绍了Ubicrawler,一个可扩展,容错且完全分布式的Web爬虫。 这是他们通过网络收集和挖掘大型数据集的项目的一部分。 它们并行化爬虫过程并分散爬虫任务以实现容错能力和可伸缩性。 此外,它们使用标识符种子一致性hash来管理其代理(指示分布式Web爬虫程序的每个工作者)和主机(指示每个爬虫URL)。 他们的结果显示了代理数量和他们可以获取的页面数之间的线性关系。

Heydon等人开发了一种可扩展,可扩展的Web爬虫。 [8]他们引入了可伸缩和可扩展的网络爬虫,可以扩展到整个网络。 他们的网络爬虫使用数百个工作线程来抓取,下载和处理文档,并为不同的URL模式和文档构建了多个协议和处理模块。

Mike等人。 开发了一个Web语义系统[9],作为云计算Web爬虫的一部分。 然而,在这项研究中,研究人员没有提供网络爬虫的架构。 据我们的查询,我们在学术文献中并没有找到特定的基于云的网络爬虫。

在互联网行业中,一些公司向其客户提供基于云的网络爬虫,然而没有任何可访问的文档。 例如,基于网格计算的80legs,基于云计算的Prompt Cloud和Scrapy Cloud,为其客户提供API和平台,以在供应商的基础架构上运行Web爬虫。 但是,并行代理的数量被限制为少于10个,并且不允许客户自定义,控制和监控资源,如我们提议的Web爬虫程序中所提供的功能.

  1. 对网络爬虫的要求

分布式Web爬虫程序的第一个要求是选择适当的Web页面分区方案。 第一种方案是基于URL的哈希,它基于URL的哈希值[10]来对网页进行分区后,将每个哈希特征分配给代理。 第二种方案是基于站点哈希的功能,即将同一网站上的所有页面分配给同一代理。 第三种方案是分层方案,根据语言和区域等特征来分配页面。 在我们提议的网络爬虫中,我们首先基于站点哈希(例如,subdomain.domain)对Web进行分区并分配给代理。 其次,每个站点都基于URL的哈希进行分区。

第二个要求是任务分工调度方案。 大多数分布式爬虫使用交换模式,允许代理相互通信并交换信息。 允许用户在需要时使用防火墙和交叉模式。 防火墙模式不接受不同代理之间的信息交换,代理只能在此模式下对特定分区中的页面进行爬虫。 在交叉模式下,只允许代理在完成自己的会话时遵循分区间链接进行信息交换[11]。 在我们提出的网络爬虫中,我们提供了一种删除交换通信的新方法和协调器。 所提出的方法基于第IV节中描述的MapReduce编程技术.

另一个要求是聚焦或未聚焦的Web爬虫。 未聚焦的爬虫搜索整个Internet,而聚焦爬虫只检索某个Web区域中的页面[12]。 有必要允许用户在聚焦和未聚焦之间切换,因为有时用户需要搜索整个互联网,有时只需搜索有限的区域.

云计算提供的分布式系统是我们网络爬虫的关键,使我们能够获得可扩展性,容错性和高性能计算。

可伸缩性对于Web爬虫程序非常重要。 与其他分布式爬虫一样,我们提出的网络爬虫也期望性能随着请求数量线性增长; 但是,我们系统的优势在于我们可以通过按需添加代理来轻松扩展。

  1. 新的网络爬虫架构

建议的Web爬虫程序的体系结构如图1所示. 代理注册服务的数据库维护代理及其主机(Internet的一个区域)的列表。 代理Ai抓取URL并添加其检索到的结果(找到的URL列表。.

1 http://80legs.com/

2 http://promptcloud.com/index.php

3 http://scrapinghub.com/platform

爬虫队列

(AzureQueue)

Ai

基于云的网络爬虫引擎(CWCE)

Aj

爬虫存档

(AzureBlob)

爬虫日志

(AzureTable)

Ak

云计算服务

分析工具

内容解析服务

DNS解析服务

重复检测服务

代理注册服务

数据字典

Azure Watch

Figure 1. 提出的基于云平台的网络爬虫的架构图r

我们所提出的Web爬虫程序,使用基于云的Web爬网程序引擎(CWCE),使用Azure Cloud Queue(队列)来维护页面中检索到的URL列表。 排队的URL是临时的数据,等待其区域的相应代理程序对其进行爬取。 我们使用Azure Cloud Table(表)存储有关已爬网页面的永久信息。 在互联网上,字段因记录而异。 该表基于NoSQL数据库,允许我们在插入带有新字段的记录时即时定义新字段。 例如,表的记录可能有一个额外的字段,例如图像类型,我们想要将图像的URL添加到表中。 在这种情况下,Table将是动态的,没有任何预先的表结构。.

表1中描述了我们建议的网络爬虫的主要字段.

Table 1. 主要字段

lt;

Partition Key

Row Key

URL

Visit

Hit

String

String

String

Boolean

Int32

原文和译文剩余内容已隐藏,您需要先支付 20元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。