互联网数据采集系统的设计与实现_第1页
互联网数据采集系统的设计与实现_第2页
互联网数据采集系统的设计与实现_第3页
互联网数据采集系统的设计与实现_第4页
互联网数据采集系统的设计与实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

互联网数据采集系统的设计与实现摘要:针对目前互联网上的数据信息涉及网站多、数据量大、数据复杂、数据标准不统一等问题。通过采用分布式数据库和支撑服务组件等技术,设计建设一套互联网信息采集管理系统,实现对互联网上相关的数据快速采集和生产标准格式数据的目标。1、概述全球互联网步入泛在普及、深度融合、变革创新、引领转型的新阶段,根据国际数据公司的统计和预测,全球数据存储量将由2015年的10ZB增长到2020年的44ZB,进入万物互联时代数据存储量呈现指数级增长,各类新闻媒体、信息检索、社区论坛、商务金融、学习教育等多样化数据资源已经遍布于互联网的各个角落,互联网已经成为了一个庞大的数据资源池。因此,无论是政务机构、企事业单位甚至是个人,已经逐渐的将互联网数据资源作为辅助完成项目建设、业务工作、科学研究的重要数据来源之一。所以,有必要建立一套互联网数据采集系统,解决互联网数据采集问题,丰富中心大数据来源,为政府决策、行业管理以及公众提供更好的信息服务。2、系统总体设计本系统具体包括互联网信息感知系统,分布式数据库和支撑服务组件。互联网信息感知系统互联网信息感知系统包含三个子系统,分别是后台管理子系统、爬虫容器子系统、存储容器子系统。其中后台管理子系统主要实现数据统计分析、爬虫任务管理、爬虫模板管理、爬虫程序管理、爬虫配置管理、用户管理、角色管理、菜单管理、字典管理等功能。爬虫容器子系统主要实现爬虫的任务管理,包括创建爬虫任务、启动任务、部署任务、停止任务等功能。存储容器子系统主要实现了数据分析处理、数据排重处理、数据格式化处理等功能。

互联网信息感知系统数据库互联网信息感知系统数据库包含两个主要数据库,分别是管理平台数据库、采集数据平台存储数据库。其中管理平台数据库存储了整个系统正常运行的系统数据的管理平台数据库,包括爬虫任务、爬虫程序、爬虫配置、用户、角色、字典等系统基础数据。采集数据平台存储了通过互联网相关网站采集获取的数据。支撑服务建设支撑服务包含消息队列、Zookeeper注册中心、FTP服务器。其中消息队列用于解耦爬虫任务和数据库的存取关系,并可降低对数据库的存储压力。注册中心用于获取爬虫容器和爬虫任务的运行状态,便于服务治理。FTP服务存储爬虫任务爬取的图片数据。系统采用分层架构设计,包括6层,即基础层、数据层、业务层、支撑层、应用管理层和展现层。图1总体架构设计基础层基础层由网络设备,存储设备和安全设备等系统所需的基础环境组成。数据层数据层由Mysql数据库组成,主要分为信息采集平台数据库和爬虫数据库,分别存储基础数据和爬取的业务数据。业务层业务层主要包含接口服务和存储服务,后端管理系统通过接口方式调用和同步对存储服务和爬虫的进行相应的操作。支撑层本系统的支撑层主要包含Zookeeper注册中心、RocketMQ消息队列和FTP文件存储服务器。Zookeeper协调管理爬虫容器和数据处理容器,Zookeeper检测爬虫任务和爬虫服务的存活状态,并实时通知信息采集管理平台,提供选择爬虫服务的依据。RocketMQ对爬虫服务和数据库进行解耦,缓存爬虫服务抓取的数据,降低存储数据的并发度,提高数据的横向扩充能力,解除数据写入带来的数据抓取限制。FTP文件存储服务器存贮爬虫程序抓取的静态文件包括不限于抓取的Css、Html、Js、Image、Video等文件。应用层系统的应用层,采用Java语言开发,使用基于Spring集成的SSM框架,实现的主要业务有和数据库的数据交互,任务调度,任务分配和爬虫服务的接口通信、和支撑服务的业务通信。由任务管理、模板管理、系统管理、爬虫管理等组成。展现层展现层面向操作用户,使用Element-ui2.5框架,Vue2.6。和业务层通过接口实现数据交换,主要实现了任务管理、模板管理、容器管理、数据看板、查询统计、系统设置等功能。3、系统具体实现3.1采用selenium爬取动态网页动态页面的生成有很多种,常见的有两种:一种是直接通过Ajax返回的数据来显示.对于这种,我们可以直接通过分析Ajax的接口来使用requests或者urllib等包直接来获取接口传输的数据,另外一种是返回的数据在页面上再进行加工后才显示的数据,这种数据往往是通过js进行各种复杂的计算得到的也是一种很常见的加密方式,通过requests并不能直接获取。针对第一种我们直接可以使用调用接口的方式获取,但是通过前端js加密的数据如何获取,当然我们可以直接分析他们的js来读懂整个网站的js但是这需要很大的功夫去了解一个网站,对于一个大型网站可能网站的人员都不一定能全部理解整个网站的js加密方式。针对该种方式的动态网页,我们使用一款自动化测试工具selenium来解决。使用selenium能够对动态网页进行渲染,并模拟人为的点击下拉等操作,对于加密的Js或者复杂请求的渲染界面的应对措施。3.2多级数据动态下钻对于爬虫爬取的网络数据有时候往往不是一类数据,很有可能是父子表数据,或者更多界别的数据,例如:爬取的房屋数据中就包含了楼盘-楼栋-房间信息,对于此类数据,如何很好的存储比较关键。系统使用通过编写相关程序和实现,使用简单的配置,通过配置配置文件中字段的父子关系,直接生成父子表,并通过页面直接点击该列字段,展现子表数据。3.3分布式网络爬虫技术分布式网络爬虫就是基于聚焦爬虫的分布式实现方式,主要使用以下组件实现分布式实现:Redis:分布式的Key-Value数据库,用作存储已经爬取的URL仓库。Zookeeper:分布式协调组件,用于对分布式爬虫容器的管理,由于Zookeeper支持多台部署,下图中2台Zookeeper可自主选举,数据和状态实时同步。RocketMQ:消息中间件,用于存储待爬取的URL和爬取下来的数据,并提供给存储容器消费数据。其他系统包括Web管理平台,存储服务系统,具体实现方式见下图(图2):图2分布式应用部署图图2是部署在后端的分布式应用,整个平台依托于分布式部署,依托于代理IP池,能快速的将爬取网站爬取下来,基于RocketMQ消费队列模式能依据存储容器和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论