立项申请书代写
科技计划项目申报书代写
社会科学基金项目申请书代写
教学研究项目立项申请代写
科技查新合同报告代写
软课题研究报告代写
医学专题报告代写
课题项目验收书代写
课题论证代写
课题项目开题报告代写
科研课题申请书(合同书)代写
调研课题代写
项目结项报告书代写
国家基金标书写作攻略
青年科学基金项目
自然科学基金申请手册
代写教改课题结题报告
医学科研课题设计论文
教育科研立项课题申报
科研课题基金申请书
课题开题报告撰写方法
·医学论文 ·哲学政法
·护理保健 ·内科临床
·外科骨科 ·儿科妇科
·心血管病 ·案例范本
·艺术体育 ·建筑工程
·中学教育 ·高等教育
·理工科学 ·经济管理
·基础医学 ·其它方向

机构:猎文工作室
电话:0760-86388801
传真:0760-86388520
邮箱:741287446@qq.com
地址:中山大学附属中山医院
网址: www.lw777.com
QQ:741287446
微信二维码

业务联系
理工科学
基于分布式网络爬虫的Web空间数据获取方法研究
添加时间: 2022/5/12 14:10:21 来源: 作者: 点击数:482

冯玲1曾李阳2左小清 1,黄亮1,朱齐华2

1.昆明理工大学 国土资源工程学院云南 昆明 650093

2. 国家测绘地理信息局四川基础地理信息中心,四川 成都 610041;)

摘要:本文针对单机网络爬虫获取Web空间数据在抓取覆盖率和抓取效率上均受到一定程度的限制,难以保证所抓取数据的及时性以及全面性问题,研究了基于分布式网络爬虫的Web空间数据获取方法,设计了基于分布式网络爬虫的Web空间数据获取原型系统并且最终实现,并且通过对原型系统进行相关的测试来证实了本文所提出解决方法的有效性。

关键词Web空间数据;分布式网络爬虫;原型系统

【中图分类号】P208     【文献标识码】A   

Research on web spatial data acquisition based on distributed web crawler

FENG ling1,ZENG Liyang2 ,UO Xiaoqing1,HUANG liang1,ZHU Qihua2

1. College of Land Resources Engineering , Kunming University of Science and Technology , Kunming 650093 , China;2. National geographic information bureau Sichuan basic geographic information Center, Chengdu 610041 ,China

AbstractThe acquisition of web spatial data by single network crawler is limited in the crawl coverage and crawl efficiency so it is difficult to ensure the timeliness and comprehensiveness of data acquisition. In this paper, based on distributed web crawlers, the method of web spatial data acquiring is studied; a prototype system of web spatial data acquisition is designed and implemented and the proposed method in this paper is validated to be effective by testing the prototype system.

Key wordsWeb spatial dataDistributed web crawlerThe prototype system

0引言

GIS是一门以数据为基础的学科,空间分析、空间统计和空间数据挖掘等研究都离不开空间数据的支撑,而互联网中存在海量空间数据,这些数据与人们的日常生活活动密切相关并且包含的信息量十分丰富、现势性极强。如果能够对互联网中广泛存在的空间数据高效地进行获取,一方面可以补充基础地理信息的不足,提供丰富的细节和准实时更新,另一方面还能够为GIS空间分析和空间数据挖掘提供信息量丰富、高时效性的数据源。

Web空间数据获取主要采用网络爬虫技术,国内外许多学者在这方面进行了研究。Leasure D R指出,利用网络爬虫技术,可以丰富GIS空间分析的数据来源[1] Tezuka T等研究提出的网络爬虫技术降低了Web空间数据获取的难度[2]Zhang C J提出了基于网络爬虫技术的地名地址库更新方法[3]Hua-Ping Zhang等研究了从互联网新闻报道中自动提取POI数据的方法[4]Li W研究了基于网络爬虫的OGC服务发现方法[5]Chen X基于网络爬虫实现了自动化发现和检索WMS服务[6]Jiang J研究了检索WFS服务的网络爬虫[7]。王明军在普通网络爬虫技术基础上提出了空间敏感爬虫的思想体系,并从多个方面对其进行了阐述[8]。蔡地在研究开源网络爬虫框架的基础上,提出通过多线程和异步I/O两种策略来优化Web空间数据的获取效率[9]Ager A则在研究中指出,如果能够对Web空间数据进行有效的利用,将对GIS的发展产生深远的影响[10]

通过分析国内外研究现状发现,目前基于网络爬虫的Web空间数据获取研究大多数采用单机网络爬虫的形式。然而,Web空间数据广泛分布于不同的网络站点中且更新频率快,依赖单机网络爬虫抓取数据在抓取覆盖率和效率上难以满足需求,难以保证抓取数据的及时性和全面性,因此本文针对单机网络爬虫获取Web空间数据存在的问题,研究基于分布式网络爬虫提高Web空间数据获取效率。

1分布式网络爬虫实现原理

基于分布式网络爬虫的Web空间数据获取方法不是通过增加单个爬虫系统的负荷而是通过增加更多的爬虫系统成员来提高数据获取性能和效率,即采用多台性能一般的机器来做数据抓取,同时在每台机器上部署多个爬虫,增加数据抓取的并发性。具体的实现方式是采用不同的机器承担不同的角色分工,选取一台性能较好的机器专门负责URL(Uniform Resoure Locator统一资源定位器)的统一调度和去重,将这台机器称为主节点,主要用来管理和维护待爬取URL队列和已爬取URL队列。采用多台性能一般的机器进行实际的网页下载和数据解析,把这些机器称为爬虫节点。

本文提出的分布式网络爬虫的运行原理如图1所示,爬虫节点从主节点请求URL进行数据抓取,在抓取数据的同时生成新的URL,并将此URL发送给主节点,主节点负责对爬虫节点提交的URL进行去重,并将其加入待爬取URL队列。爬虫节点之间没有通信联系,每个爬虫节点只和主节点进行通信,主节点通过一个地址列表来保存系统中所有爬虫节点的信息。因此,当分布式网络爬虫系统中的节点有变化的时候(新增爬虫节点,删除某爬虫节点,或爬虫节点地址发生变化),主节点只需调整地址列表中数据,爬虫节点只需要负责抓取数据。同时,主节点负责对分布式网络爬虫系统中各爬虫节点进行负载均衡。

1分布式网络爬虫实现原理图

2系统设计与实现

2. 1系统架构

原型系统是根据述分布式网络爬虫实现思路,在主节点上部署Redis缓存数据库来管理和维护分布式网络爬虫系统中各爬虫节点共享的已爬取URL队列和待爬取URL队列,爬虫节点之间没有通信联系,每个爬虫节点都会与主节点Redis缓存服务器建立连接,并在每个爬虫节点上部署MongoDB数据库,用来存储和管理抓取到的数据。分布式网络爬虫系统中单个爬虫节点的系统架构如图2所示。

2 爬虫节点系统架构

2.2 系统实现

本文通过对开源网络爬虫框架Scrapy进行深度开发来实现面向Web空间数据获取的分布式网络爬虫原型系统。Scrapy是一个为了爬取网站数据,提取结构性数据而编写的基于python语言的应用框架[13],它基于Twisted异步网络库来管理网络通讯[14]。开发者可以对Scrapy框架进行扩展以完成网络爬虫的定制,本文实现了定制的调度器、解析器、数据过滤器和下载器中间件,而下载器和爬虫引擎则使用Scrapy框架自带的模块。表1为原型系统的开发环境。

1 原型系统开发环境

开发语言

Python2.7.11

硬件及操作系统

64位Windows8系统、4G内存、i7-3612QM处理器

 数据库

MongoDB 3.2.0、Redis 3.0.501

开发工具

Eclipse+PyDev

MongoDB数据库管理工具

Robomongo 0.9.0-RC7

Redis数据库管理工具

RedisStudio-en-0.1.5

3系统测试与结果分析

3.1测试环境

本文使用四台配置普通的PC机来进行系统测试,选择其中内存较大的一台部署为主节点,在其上安装Redis缓存数据库用于维护待爬取URL队列和已爬取URL队列。使用另外三台PC机进行实际的网页下载和数据解析,在其上安装python环境和MongoDB数据库,将其作为爬虫节点,测试时的网络带宽为8Mb/s。

3.2测试结果分析

为了避免网络流量对实验测试产生影响,将系统测试时间定于晚上10点至次日7点,系统共运行9个小时。分别爬虫和分布式网络爬虫系统进行测试,单机爬虫的测试结果如表2所示。 

2单机爬虫测试结果

运行时间(小时)

抓取数据条数(条)

1

6183

2

12090

3

18358

4

24339

5

30559

6

36860

7

43124

8

49193

9

55453

分布式网络爬虫的测试结果如表3所示。

3 分布式网络爬虫测试结果

运行时间(小时)

抓取数据条数(条)

爬虫节点1

爬虫节点2

爬虫节点3

总计

1

6024

6015

6351

18390

2

11423

11331

12029

34783

3

16287

16594

18340

51221

4

22716

22135

24041

68352

5

27931

27388

29856

85175

6

34129

32639

35826

102594

7

39829

37915

41575

119319

8

45796

42584

47392

135772

9

51585

47916

53332

152883

将实验数据结果绘制成折线图,实验结果如图3所示:

3 分布式网络爬虫测试结果图

由图3可知,分布式网络爬虫系统中三个爬虫节点抓取数据的总数与运行时间可近似视为正比例关系,这说明原型系统能够稳定地运行。分析此图的横纵坐标可以得出,每条线的斜率就是数据爬取效率,采用分布式网络爬虫抓取数据的效率远高于单机爬虫,这说明本文设计实现的分布式网络爬虫系统具有良好的扩展性。测试过程中,每个爬虫节点抓取数据的情况如图4所示。

4 单机与并行节点性能对比图

由图4可知,当采用分布式网络爬虫系统进行爬取时,其所包含的每个节点的爬取效率同单机爬虫相比有所下降,但是这个下降是在正常范围之内,因为多个节点同时运行时共用同一条对外网络接口,网络带宽成了并行爬行的主要瓶颈。同时从图4中还可以得知,节点一、节点二、节点三的所承担的爬取任务数量基本相同,这说明本文设计和实现的分布式网络爬虫系统能够实现系统各个节点之间负载均衡。

4结束语

本文针对单机网络爬虫获取Web空间数据在抓取覆盖率和抓取效率上受到限制,难以保证抓取数据的及时性和全面性的问题,研究了基于分布式网络爬虫的Web空间数据获取方法。通过实验分析对比证明,本文提出的基于分布式网络爬虫的Web空间数据获取方法 能够提高Web空间数据获取效率设计和实现的Web空间数据获取原型系统能够稳定运行,并且系统具有良好的扩展性,系统各个节点之间能够实现负载均衡。

参考文献:

[1] Leasure D R. Geodata CrawlerA centralized national geodatabase and automated multi-scale data crawler to overcome GIS bottlenecks in data analysis workflows[J].

[2] Tezuka TKurashima TTanaka K. Toward tighter integration of web search with a Geographic information system[C].Proceedings of the 15th international conference on World Wide Web. ACM2006277-286. 

[3] Zhang C JZhang X YZhuS Net al. Method of Toponym Database Updating Based on Web Crawler[J]. J.Geo-Inf. SCI201113492-499. 

[4] Hua-Ping ZhangQian Mo.Structured POI data Extraction from Internet News[C].The 4th International Universal Communication Symposium (IUCS)Beijing2010.

[5] Li WYang C. An active crawler for discovering geospatial web services and their distribution pattern-a case of study of OGC web map service [J].International Journal Geographical Information Science201024(8)1127-1147.

[6] CHEN XCHEN RWEI W. Design and Realization of Web Service Snatch and Parse Engine Based on Web Crawler [J].Geomatics World20103016.

[7] Jiang JYang CRen Y .A spatial information crawler for opengis wfs [C].The 6th International Conference on Advanced Optical Materials and Devices. International Society for Optics and Photonics200871432C-9.

[8] 王明军.基于Web的空间数据爬取与度量研究[D].武汉大学,2013.

[9] 蔡地.互联网多源矢量空间数据自动获取与管理方法研究[D].中国测绘科学研究院,2015.

[10] Ager ASchrader-Patton CBunzel Ket al. Internet Map ServicesNew portal for global ecological monitoringor geodata junkyard?[C].Proceedings of the 1st International Conference and Exhibition on Computing for Geospatial Research &Application.ACM201037.

[11] Ryan Mitchell. Web Scraping with Python[M].SebastopolO’Reilly MediaInc2015.7-24.

[12] Scrapy developers. Scrapy Documentation Release 1.0.3. 2015.8-15.

[13] 阮正杰.基于Twisted架构的GPS协议转换软网关的设计与实现[D].浙江工业大学,2013.

关于我们  |  诚聘英才  |  联系我们  |  友情链接
版权所有:@2007-2009 中山猎文工作室 电话:0760-86388801 QQ:51643725
地址:中山大学附属中山医院 邮编:528402 皖ICP备12010335号-5
  • 国家自然科学基金体育立项分析
  • 国家社科基金选题参考—应用经济学、管
  • 广州市中医药和中西医结合科技项目申报
  • 改善歼八II战斗机‘低速性能’的方法