APP下载

基于网络爬虫的地理空间信息采集方法

2016-07-18巩保胜魏春苗

甘肃科技 2016年7期
关键词:空间信息爬虫网页

巩保胜,魏春苗

(61243部队,新疆 乌鲁木齐830006)



基于网络爬虫的地理空间信息采集方法

巩保胜,魏春苗

(61243部队,新疆 乌鲁木齐830006)

摘要:网络环境下地理空间信息的搜集与获取,是地理空间研究信息获取重要途径。网络环境中数据信息量大,主题门类多,如何高效快速地获取地理空间主题信息是一个亟待解决的问题。本研究提出了基于网络爬虫的地理空间主题信息采集方法,该方法能高效自动的采集目标网络上的地理空间信息,提高了地理空间信息采集效率,为进一步建立地理空间主题信息库提供数据支撑。

关键词:信息采集;网络爬虫;地理空间信息;Scrapy

近年来,随着互联网,云计算等IT与通信技术的迅猛发展,信息社会已进入了大数据时代[1],网络上地理空间主题相关信息越来越多[2],除Google地图,百度地图以及一些符合标准(OGCWMS、WFS、WCS)的地理空间信息服务网站外,还有一些网络服务(例如开放大学图书馆)也包含了此类信息。这些地理空间信息的获取需要从半结构化或无结构的Web页面中准确的抽取数据,转换成结构化的数据以进行挖掘和利用。网络爬虫[3]可以自动爬取目标网站,实现精准的网页信息采集,根据需要还可将采集数据存入数据库中,构建地理空间主题信息检索[4],为更深层次的用户提供更专业的目标信息检索。

1 网络爬虫

网络爬虫[5]是一个自动提取网页的程序,它为搜索引擎从Web上下载网页,是搜索引擎的重要组成部分。其基本原理是从一些“目标”站点出发,通过HTTP等协议请求并获取网页资源,分析页面内容并提取链接,以循环迭代的方式访问整个目标网络。网络爬虫有选择的访问相关网页和链接,釆集数据,并将数据按照规定的格式存储。

网络爬虫的工作步骤(如图1所示),首先通过通用搜索引擎,挑选符合目标预期的网页加入目标网址队列,然后网络爬虫依次读取网站地址,访问网页读取网页内容,然后结构化抽取网页中的目标数据,另一方面解析出网页内容里包含的其他网址,并通过判重算法判断是否己经抓取过,如果网址未曾抓取过,则将其放入该队列中,如果网址曾被抓取过,则放入已抓取网址队列中,如此循环,直到网址队列为空为止。网络爬虫保证了搜索结果的领域相关性,排除了很多与查询无关的页面,极大程度上满足了人们对搜索准确性的要求。

图1 网络爬虫工作流程图

2 利用网络爬虫进行地理空间信息采集工作流程

利用网络爬虫采集地理空间信息是网络环境下地理空间信息采集的重要手段。具体工作流程如图2所示。

图2 地理空间信息采集流程图

首先,对拟获取的地理空间信息建立索引关键字,在通用搜索引擎中建立搜索式,通过优化搜索式,提高通用搜索引擎的搜索效率和目标匹配度。

其次,通过人工查看、干预的方式,对搜索出来的相关网站,网页进行预判断,进一步提高网站与关键词的相关度。最后确立需要进行地理空间信息采集的目标网站。

第三步就是利用网络爬虫对整个目标搜索网站集进行搜索,记录搜索目标地理空间信息有关的文本信息,形成地理空间信息搜集信息库,为进一步的数据挖掘和后续处理提供数据支撑。

最后,如果目标网站价值较高,需要持续跟踪,可以利用网络爬虫定期对网站内容进行爬取,检测网站上需要关注的地理空间信息,实现地理空间信息跟踪的自动化。

3 利用Scrapy网络爬虫进行地理空间信息采集

以德克萨斯大学图书馆网站的收录地图网页作为目标网站进行地理空间信息采集,本研究以Scrapy框架构建网络爬虫,Scrapy是Python开发的快速Web信息采集框架,用于抓取web站点并从页面中提取数据。

首先创建一个信息采集项目,名称为Mymap。在Scrapy下运行:scrapystartprojectMymap命令。该命令将会创建包含网络爬虫的内容目录。

item.py中定义了你要采集的目标变量。目标网站信息如图3所示。

图3 目标网页源码

本研究中需要采集亚洲地区的扫描地图数据信息,通过上图可以看出,该信息包含了扫描地图的网络连接,图幅区域和扫描图其他信息,所以item对象定义为:

importScrapy

classMymapItem(scrapy.Item)

url=scrapy.Field();

region=scrapy.Field();

info=scrapy.Field();

Spiders.py定义了如何爬去某个网站,包括了爬取的动作以及如何从网页的内容中提取结构化数据(爬取item),是定义爬取的动作及分析某个网页(或者是有些网页)的地方。Scrapy提取数据有自己的机制,通过特定的XPath或者CSS表达式来“选择”HTML文件中的某个部分。本采集部分代码如下:

利用Xpath,通过Scrapy自动提取html中a、href、li标签的相应属性,实现了目标网页信息采集。最终采集到的网页信息如图4所示。

图4 地图信息采集结果

通过图4可以看出,利用Scrapy构建的网络爬虫,能精准的对目标网页信息进行采集。后续如果还需对该网页持续跟踪,可将该网站加入目标网址库,定期利用Scrapy爬虫进行数据采集。

4 结束语

网络环境下的地理空间主题信息采集是地理空间研究重要数据来源,本研究分析了目前信息采集的作业流程,提出了用网络爬虫采集网站信息的工作流程方法。该方法能精准的提取网页数据,提高数据采集的自动化程度,为后续地理空间信息主题库的建立,以及数据挖掘提供数据支撑。

参考文献:

[1]王元卓,靳小龙,程学旗.网络大数据:现状与展望[J].计算机学报,2013,36(6):1125-1135.

[2]孙瑞英.网络数据内容分析研究[J].图书馆学研究,2005 (5):35-39.

[3]刘金红,陆余良.主题网络爬虫研究综述[J].计算机应用研究,2007,24(10):26-29.

[4]王曙,吉雷静,张雪英.面向网页文本的地理要素变化检测[J].地球信息科学学报,2013(10):15-5.

[5]罗刚,王振东.自己动手写网络爬虫[M].清华大学出版社, 2010.

中图分类号:TP391.3

猜你喜欢

空间信息爬虫网页
利用网络爬虫技术验证房地产灰犀牛之说
结合多层特征及空间信息蒸馏的医学影像分割
基于Python的网络爬虫和反爬虫技术研究
基于HTML5与CSS3的网页设计技术研究
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
大数据背景下校园舆情的爬虫应用研究
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
基于作战环的空间信息时效网关键节点分析模型