本发明涉及数据采集技术领域,尤其是一种互联网数据采集系统。
背景技术:
随着互联网信息技术的飞速发展,企业数据抓取、储存、分析、处理及其应用已变得很便捷,企业战略决策和危机处置正在朝数据驱动型的预测、发展和决策的方向发生转变。因此,未来应对竞争和危机的决策行为将基于对数据的抓取与分析,而并不是依靠经验和直觉判断的传统模式。
建立“大数据战略”体系,其首要实现的是数据抓取,因为企业对各类数据的分析解读与应用都必须是在采集到的数据上进行,只有通过对所需数据的全面准确采集,形成数据流规模,然后再对数据流进行分析,这样分析出的数据结果对决策行为才有指导性作用。
目前,很多公司在建立大数据存储中心时,只是采用数据仓库或者中间件等方法将各个分系统数据集合存储,并没有去获取互联网数据。而随着信息社会的发展,互联网数据对于公司的数据分析越来越重要。
技术实现要素:
本发明的目的在于提供一种面向大数据存储中心的互联网数据采集系统,以及基于此系统的面向大数据存储中心的互联网数据采集方法,用于合理有效地抓取互联网数据;本发明采用的技术方案是:
一种面向大数据存储中心的互联网数据采集系统,包括数据爬取服务器、数据网关、数据库服务器;数据爬取服务器连接数据网关,数据网关连接数据库服务器;
在数据爬取服务器上,建立有数据爬取主程序和格式处理程序;
在数据爬取服务器上,还建立有至少一个目标文件夹,每个目标文件夹对应一个目标网站;在各目标文件夹中,建立有与每个目标网站唯一对应的爬虫程序,以及一个目标地址文件,目标地址文件中存有目标内容的URL链接;
数据网关作为一个中转站,负责连接数据爬取服务器和数据库服务器,将数据爬取服务器抓取的网站数据信息转送给数据库服务器。
一种面向大数据存储中心的互联网数据采集方法,基于上述面向大数据存储中心的互联网数据采集系统,包括下述步骤:
步骤S1,数据抓取前置处理,由数据爬取主程序完成,具体包括:
S1.1,获取用户输入的执行参数,包括:
获取用户设置的日志级别;
获取用户设置的所要爬取的目标网站和目标网站上的具体内容,以及数据库服务器上数据存储位置信息;
获取用户设置爬取间隔时间;
获取用户设置的数据网关的IP地址和端口;
S1.2,根据步骤S1.1获取到的IP地址和端口,首先连接数据网关;如果连接成功才继续执行S1.3,如果连接不成功,则直接给用户返回错误信息,让其检查数据网关的地址是否有效;
S1.3,数据爬取主程序加载目标网站对应的目标文件夹中的爬虫程序;
步骤S2,数据抓取及预处理,具体包括:
S2.1,读取目标地址文件里的链接地址,子步骤S2.1由爬虫程序完成;
S2.2,用一个工具包链接读取出来的网址,获取到网页的html源代码;子步骤S2.2由爬虫程序完成;
S2.3,用一个工具解析html源代码,获取得到所需的数据;子步骤S2.2由爬虫程序完成;
S2.4,然后将获取到的数据信息,利用格式处理程序进行JSON格式解封装,得到原始的数据;
S2.5,将得到的原始数据,转换成数据库服务器上数据库能够存储的格式,然后将推送给数据网关;子步骤S2.5由爬虫程序完成;
步骤S3,数据转发,具体包括:
S3.1,根据步骤S1中获取的IP地址和端口号,链接数据网关,如果连接成功则执行S3.2,如果连接不成功,则尝试重新连接,如果还不成功,就返回失败信息给用户;此子步骤S3.1通过爬虫程序完成;
S3.2,进行推送之前,需要先把步骤S2生成的数据,通过格式处理程序转化成JSON格式;
S3.3,将步骤S1获取的存储位置信息,和S3.2得到的打包成JSON格式的数据,一同组装成HTTP报文;此子步骤S3.3通过爬虫程序完成;
S3.4,执行推送操作,将HTTP报文数据发送到数据网关完成任务;此子步骤S3.4通过爬虫程序完成。
进一步地,子步骤S2.2中,采用的工具包为urllib2工具包。
进一步地,子步骤S2.3中,采用的工具为BeautifulSoup工具。
本发明的优点在于:本发明通过三个步骤,第一步是,数据抓取前置处理,为数据抓取做准备工作,确定目标,工作模式等;第二步是,数据抓取及预处理,完成数据的获取以及规范化等;第三步是,数据转发,将数据发送到数据网关,完成数据的存储操作。本发明解决了互联网数据抓取问题,为大数据存储中心提供更加全面和丰富的数据,便于数据挖掘与分析。
附图说明
图1为本发明的系统结构图。
图2为本发明的http报文格式示意图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
面向大数据存储中心的互联网数据采集系统,如图1所示,包括数据爬取服务器、数据网关、数据库服务器;数据爬取服务器连接数据网关,数据网关连接数据库服务器;
在数据爬取服务器上,建立有数据爬取主程序和格式处理程序;本发明中建立的数据爬取主程序名字为crawler,用户可以在此输入相关参数,开启执行任务。数据爬取服务器通过爬虫程序从第三方网站上爬取下来的有效数据,都是对方从自己数据库中查取出的,所以返回的都是JSON格式数据(JSON格式是Web服务通用的数据包装格式),这时需要用格式处理程序进行处理转换为可用数据;
在数据爬取服务器上,还建立有至少一个(通常是多个)目标文件夹,如图1中的dianping、meituan、qunar、atmyweibo等,均代表目标文件夹;每个目标文件夹对应一个目标网站;在各目标文件夹中,建立有与每个目标网站唯一对应的爬虫程序(文件名为fetch.py),以及一个目标地址文件(文件名为map.txt),目标地址文件中存有目标内容的URL链接;目标内容的URL链接指向需要爬取的目标网站以及该网站上的具体内容,比如美团网站上的某个酒店信息页面就是一个目标内容;
数据网关作为一个中转站,负责连接数据爬取服务器和数据库服务器,将数据爬取服务器抓取的网站数据信息转送给数据库服务器;
面向大数据存储中心的互联网数据采集方法,包括下述步骤:
步骤S1,数据抓取前置处理,具体包括:
S1.1,获取用户输入的执行参数,包括:
获取用户设置的日志级别;日志是用来记录本程序的执行过程以及产生的各种错误信息,有了日志信息,才能更好的监测程序运行状态;
获取用户设置的所要爬取的目标网站和目标网站上的具体内容,以及数据库服务器上数据存储位置信息如数据库名称,数据表名称;
获取用户设置爬取间隔时间;
获取用户设置的数据网关的IP地址和端口;
S1.2,根据步骤S1.1获取到的IP地址和端口,首先连接数据网关;如果连接成功才继续执行S1.3,如果连接不成功,则直接给用户返回错误信息,让其检查数据网关的地址是否有效;
S1.3,数据爬取主程序加载目标网站对应的目标文件夹中的爬虫程序fetch.py;
上述步骤S1由数据爬取主程序完成;
步骤S2,数据抓取及预处理,具体包括:
S2.1,读取目标地址文件(maps.txt)里的链接地址,子步骤S2.1由爬虫程序完成;
S2.2,用urllib2工具包链接读取出来的网址,获取到网页的html源代码;子步骤S2.2由爬虫程序完成;
S2.3,用BeautifulSoup工具解析html源代码,获取得到所需的数据,比如酒店的评论信息;子步骤S2.2由爬虫程序完成;
S2.4,然后将获取到的数据信息,利用格式处理程序进行JSON格式解封装,得到原始的数据;
S2.5,将得到的原始数据,转换成数据库服务器上数据库能够存储的格式,然后将推送给数据网关;子步骤S2.5由爬虫程序完成;
步骤S3,数据转发,具体包括:
S3.1,根据步骤S1中获取的IP地址和端口号,链接数据网关,如果连接成功则执行S3.2,如果连接不成功,则尝试重新连接,如果还不成功,就返回失败信息给用户;此子步骤S3.1通过爬虫程序完成;
S3.2,进行推送之前,需要先把步骤S2生成的数据,通过格式处理程序转化成JSON格式;
S3.3,将步骤S1获取的存储位置信息,和S3.2得到的打包成JSON格式的数据,一同组装成HTTP报文;此子步骤S3.3通过爬虫程序完成;
一个HTTP请求包的格式见图2,其中data是传输的数据,他的格式是JSON形式的,如箭头所指;在data之前的几行,是HTTP可以携带的数据相关的信息比如,数据大小,数据名称,存储位置等;
S3.4,执行推送操作,将HTTP报文数据发送到数据网关完成任务;此子步骤S3.4通过爬虫程序完成。
本发明所涉及的而一些术语解释如下:
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式;
urllib2是Python的一个获取URLs(UniformResourceLocators)的组件;
Python是一种面向对象、解释型计算机程序设计语言;
BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库。