据、水质数据、水涝灾害数据、遥感数据、防汛抗旱
知识和应急管理知识等,这些数据可为防汛抗旱决
策支持、水利工程建设、水文水资源研究等提供重
要支持[1]。然而,水利数据分散在各水利机构内,结
构复杂、种类繁多,即便是同一种类的业务数据,数
据结构也有所差异,阻碍了水利数据的开发、利用
与研究。因此,本文从各水利政务网站的公开数据
入手,结合水利部发布的数据库规范设计数据库
表,以水雨情数据为例,基于爬虫框架Scrapy 设计和
开发水利爬虫,着重介绍了各种水雨情网页的获取
和解析过程,包括Scrapy Selector CSS 选择器解析
HTML 结构数据、正则表达式解析JavaScript 数据、获取和解析Ajax 数据、Selenium 结合浏览器驱动解
析网页加密数据等;并对爬取的数据进行规范化存
储,最后使用SpiderKeeper 对分布于不同服务器的
网络爬虫(web crawler ),又称作网络机器人(web robot )或网络蜘蛛(web spider ),是以一定的规则自动抓取互联网资源的计算机应用程序[2]。网络爬虫通常由调度器(scheduler )、下载器(download ⁃ 集团经济研究
er )、解析器(parser )、待爬行队列(URL queue )4个部分组成,如图1所示[3-4]。调度器首先将设定的初始URL 传递给下载器,下载器从互联网下载信息并传给解析器,解析器根据既定规则提取信息和待爬取的URL ,提取的信息经处理后存入数据库或文件,URL 经去重后传输给待爬行队列,等待调度器调用,循环往复[5-7]
。图1网络爬虫执行流程网络爬虫分为通用(General Purpose )网络爬虫和聚焦(Focused )网络爬虫[8]。通用网络爬虫又称作全网爬虫,爬取整个互联网资源以供搜索引擎建红账簿
立索引;聚焦网络爬虫又称作主题网络爬虫,爬取
用户需要的特定主题网页(经相关网站许可)收集
数据,并在标注出处的前提下加以数据分析、用于收稿日期:2019-12-03作者简介:游攀利,男,工程师,硕士,主要从水利信息化建设及软件开发工作。E-mail :youpanli@cjwsjy
windows server2003基于Scrapy 的水利数据爬虫设计与实现
游攀利,杨琳,喻淼
(长江信达软件技术(武汉)有限责任公司,湖北武汉430010)
摘要:为解决目前各级水利部门数据共享能力弱、数据格式不统一的问题,建立了一种水利数据整合方法。针对互联网公开的水利数据特点,结合水利行业标准规范,介绍了基于Scrapy 框架设计和开发的水利数据爬虫,并规范化存储数据。在总结各种水利数据的获取和解析原理及方法基础上,提出了使用Scra ⁃pyd 部署爬虫和SpiderKeeper 管理爬虫的方法,并成功应用于长江大数据中心的建设,为水雨情预警、防汛抗旱、应急管理提供了重要支持。
关键词:水利数据;网络爬虫;Scrapy ;数据采集中图法分类号:TP391文献标志码:A DOI :10.15974/jki.slsdkb.2020.05.014
防暴警察文章编号:1006-0081(2020)05-0071-072020年5月
水利水电快报EWRHI 第41卷第5期悼念玛丽居里
··71