CN113918793A - 一种多源科创资源数据采集方法 - Google Patents
一种多源科创资源数据采集方法 Download PDFInfo
- Publication number
- CN113918793A CN113918793A CN202111505650.8A CN202111505650A CN113918793A CN 113918793 A CN113918793 A CN 113918793A CN 202111505650 A CN202111505650 A CN 202111505650A CN 113918793 A CN113918793 A CN 113918793A
- Authority
- CN
- China
- Prior art keywords
- data
- crawler
- scientific
- page
- acquisition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明公开了一种多源科创资源数据采集方法,包括爬虫模块、路由模块和动态页面解析模块;爬虫模块是指一个爬虫模块的集群中,会包含多个爬虫模块,爬虫模块主要的两个功能是页面下载和页面信息提取;路由模块的主要功能是对整个分布式网页爬虫系统进行任务的接受、管理、分发,任务的负载均衡,爬虫服务和动态页面解析服务节点的管理以及系统内心跳包的发送;动态页面解析模块是指以集群的模式针对动态页面进行页面解析,针对多源异构的科创数据,提出了一种多源科创数据的采集方法,满足了科创数据采集所需的数据量足且全面、数据源复杂、时效性等特点,相较于传统数据抓取方法,耗时更短、抓取效率更高,具有较高的鲁棒性。
Description
技术领域
本发明涉及数据处理技术领域,具体为一种多源科创资源数据采集方法。
背景技术
近年来,随着信息与网络技术的高速发展以及我国产业转型升级的不断推进,国家对于科学发展以及科技服务的需求也日益上升,在如今万众创新的时代,以科学高效的理念共享科技创新资源,充分发挥资源优势,已成为推进科技创新的必经之路,尽管我国科技创新资源共享已经取得了跨越式发展,但仍在共享规模、质量和水平等方面存在差距,资源分散、协同不足、市场发育不全,导致了共享服务效率低,质量不佳、环境缺失等问题,科学技术是第一生产力,经济转型、产学研深度融合、科技成果转化等都需要依靠科技的创新;
然而,传统信息化架构难以满足对海量数据的存储、处理和分析需求,形成了大量信息孤岛,使数据采集和数据转换成为难题,与此同时,科创资源涵盖了科技文献、专利成果、技术研报等多种类型,在实际应用中,这些数据结构复杂、主题各异、格式多样,因此针对多源异构数据的采集填报难度较大;
针对目前相关的数据采集填报方法,一是基于人工智能识别、纠错的采集方法和系统(一种基于人工智能的高校招生数据采集方法及系统,公开号CN109960707A,公开日2019.07.02),通过OCR识别模块、人工校对模块、数据入库模块,基于人工智能、机器学习、图像处理、数据挖掘、坐标定位和语义识别的技术方法,对高校招生数据进行深度挖掘和分析,实现智能识别的过程,通过智能纠错模块,实现智能纠错的过程;
但其数据采集范围及采集数据的结构与本发明的方法有本质上的不同,且本发明的采集方法针对复杂多源异构数据的采集融合及结构化处理方面,提出了更为详细、便捷的方法,而目前缺乏该针对科创资源数据的采集方法。
发明内容
本发明提供一种多源科创资源数据采集方法,可以有效解决上述背景技术中提出目前在进行网络数据特征抓取时,存在过程繁琐、误差大的缺陷,进一步,科创资源数据因其特征,也存在结构化程度不统一、主题融合度低、时空分布不一致的问题。
为实现上述目的,本发明提供如下技术方案:1.一种多源科创资源数据采集方法,所述采集方法包括爬虫模块、路由模块和动态页面解析模块;
所述爬虫模块是指一个爬虫模块的集群中,会包含多个爬虫模块,爬虫模块主要的两个功能是页面下载和页面信息提取;
所述路由模块的主要功能是对整个分布式网页爬虫系统进行任务的接受、管理、分发,任务的负载均衡,爬虫服务和动态页面解析服务节点的管理以及系统内心跳包的发送;
所述动态页面解析模块是指以集群的模式针对动态页面进行页面解析;
具体的数据采集方法包括如下步骤:
S1、数据采集阶段;
S2、数据分析阶段;
S3、数据存储阶段;
所述S1中,数据采集阶段包括配置抓取目标、读取解析数据页面和启动信息采集,所述S2中,数据分析阶段包括数据解析、数据规范化处理和数据预处理,所述S3中,数据存储阶段包括数据分类、数据存储和数据反馈;
数据采集阶段在采集过程中基于Dis-Dyn Crawler架构,采用基于面向服务的架构体系,将动态页面处理功能独立出来形成一个单独的服务。
根据上述技术方案,科创资源数据采集对象包括科研文献数据库、专利数据库、国家自然科学基金项目数据库、国家社科基金项目数据库、金融数据库和政府与企业数据库。
根据上述技术方案,所述配置抓取目标是指采用基于Heritrix可配置主题的聚焦爬虫的网页大数据抓取方法,依据爬取需求定义好该聚焦网络爬虫爬取的目标,并进行相关的描述,获取初始URL,Heritrix会从线程池里分配给每个URL一个独立的线程,过滤掉与目标无关的网页,同时将与目标相关的URL地址存放到一个新的URL列表中,用于去重和判断爬取的进程;
在新的URL队列中,采取广度搜索策略,确定URL的优先级,并确定下一步要爬取的URL地址,用代码模拟客户端向服务器发送请求,编辑检索模式选择关键词检索或全域检索,在网页端自动获取指定的原始数据;
所述读取解析数据页面是指路由模块在启动后会监听相应的端口,对外提供爬虫任务接受接口,接受外界发送的爬虫任务,爬虫任务应包括网站的URL队列,页面处理程序所在的包以及文件名;
在爬虫任务发送时,会指定一个主工作节点和多个从工作节点,主工作节点接受到爬虫任务后会立刻根据种子URL进行页面抓取并将提取的URL存入到Redis缓存中,其他的从节点也会依次启动,至此主从爬虫节点会全部启动相互协作完成爬虫任务;
以循环迭代的方式采集整个表层网络资源,利用JavaScript脚本引擎或表单提交器获取动态页面内容,以完成对深层网络资源的采集;
所述启动信息采集是指根据网页分析算法初步过滤与所需主题无关的原始数据;
在数据采集阶段,将待访问的数据队列作为抓取对象,通过使用者或外部程序进行初始化处理,解析该页面提取数据特征,根据提取出的特征,存储此时界面上全部数据信息,以此为基础,每个爬虫的循环规律都是通过解析出的数据特征中挑选一个特征进行爬行,直至所需数据抓取完毕为止;
在科创资源数据抓取时,以顺沿的形式向节点树宽度方向分布式,抓取初始网页中所有信息,随机抓取一个网页地址,重复该过程,基于网络爬虫对科创数据进行抓取,对数据关键特征完成抓取任务。
根据上述技术方案,所述数据解析是指在得到待采集的科创数据集合时,将源文件保存到HDFS文件系统中,以装载到Hadoop集群中,判断数据来源特征以及数据种类,并解析其数据格式、存储格式、数据字段、更新机制、信息维度、数据质量,以准确读取数据内容;
配置采集科创资源的规则,配置规则包含配置采集范围、配置采集规则、时间设定、别名扩展、对象监测规则,确保获取的资源数据有效性,识别采集对象内容类型,编辑采集字段,映射标准字段,别名自动识别与扩展,依据采集对象更新情况,设置数据时间段,调整页面循环设置,定时采集,识别采集到的对象,调整页面循环设置,识别数据文件格式并选择导出路径;
所述数据规范化处理,由于采集到科创资源类型多样,需要对数据源特征进行分析,包括来源地址、数据分布、存储格式、数据字段、更新机制、信息维度、数据质量方面进行解析和预处理,针对数据中可能存在的问题;
通过解析与预处理将采集到的多源异构的科创资源数据进行存储格式的解析、数据标准化处理、元数据清洗与规范,以实现多源数据结构化与元数据描述规范化;
所述数据预处理,是指运用MAP-Reduce程序对原始数据进行初步预处理,对其进行数据清洗以及去重处理,去除无效的、非法的数据,过滤无关字段,留下不重复的元数据;
在数据分析阶段,利用FTP传输服务,在各个采集服务器建立FTP服务端,后使用数据搜集服务器以FTP客户端的身份与之建立连接并下载;
在搜集服务器中匹配各服务器的IP地址、FTP下载端口号、根目录路径的信息,根据后续的数据反馈,更新服务器本身的配置,也可增加配置来动态扩展。
根据上述技术方案,所述数据分类是指通过Java API把文件从Hadoop读取出来,对不同来源的数据进行解析,将相近内容的数据相关联,并根据数据的解析结果,对处理后的数据分别进行保存;
所述数据存储是指将保存的各类数据上传至SQL数据库,建立总数据库,同时将原始科创数据导入HIVE数据仓库;
所述数据反馈是指系统将存储被爬取的网页,进行分析、过滤,建立索引,以便之后的查询和检索,根据解析内容对之后的抓取过程给出反馈和指导,以更新选择合适的网页搜索策略;
在数据存储阶段,为将采集、分析后的数据装载到Hadoop集群中,采用将源文件保存到HDFS文件系统中,即使用FileSystem API装在原始文件到HDFS系统;
将原始科创数据导入HIVE数据仓库,可满足溯源的需求,即可根据分析结果查看原始数据的需求,同时运用MAP-Reduce程序对原始数据进行初步预处理,提取五元组数据,即域名、源IP、目的IP、目的端口、日期,以便分类存储;
利用单台关系型数据库服务器做科创资源的存储,以便于用户后续的查询和操作,MAP-Reduce作业可以在Hadoop计算集群上实现并行计算,任务过程分为map阶段和reduce阶段,每个阶段以键值对作为输入和输出,为减少系统耦合性,Hadoop和存储数据库间的数据流仍采用平面文件的传输方式,通过Java API把文件从Hadoop读取出来,传输到存储数据库所在的分析服务器某目录下,期间装载过程采用BULK INSERT接口。
根据上述技术方案,分布式网页爬虫系统的目标就是将爬虫任务分配到一个爬虫集群中,集群中的各个工作节点会相互协作,共同完成爬虫任务。
根据上述技术方案,爬虫系统在实现的时候选择了ZeroMQ和Redis进行模块间的消息通信和状态交互;
系统中的路由模块是由ZeroMQ消息中间件的代理层充当的,负责对于整个系统节点监控和协调以及对于爬虫任务的公平分配,完成负载均衡的功能。
根据上述技术方案,科创资源多为动态页面,在进行页面解析时,选取HtmlUnit作为解析工具,它是由纯Java编写开发的, HtmlUnit除了对于动态页面的解析和异步Ajax请求的支持以外,对于表单提交和加载也有很好的支持。
根据上述技术方案,在设计时,对HtmlUnit加入了一层本地JavaScript文件缓存,只有JavaScript集群中的节点在首次解析JavaScript文件时才会从远程服务器获取该文件,以后的JavaScript文件获取都是从本地缓存中直接获取,无需发起获取JavaScript文件的HTTP请求。
根据上述技术方案,采用HttpAsyncClient作为下载器,实现异步的网络资源下载,异步的请求一般会指定一个特定的线程来处理请求事件,当有事件到达时,通过事件触发的方式来完成线程间的消息通信,而不必让用户线程一直等待;
在对科创资源进行爬取时,会首先检查网站的Robts协议。
与现有技术相比,本发明的优点在于:
其一,科创资源数据量庞大且特征各异,对于此类网络科创数据的抓取,本方法相较于传统数据抓取方法,耗时更短、抓取效率更高,具有较高的鲁棒性;
其二,针对多源异构的科创类数据,总结分析其数据特征,并对数据进行结构化处理,构建出一套符合科创数据字段特征、时空序列特征以及分布存储特征的数据采集方案,可实现对于科创数据的高效采集、解析与存储;
综合上述,本发明针对多源异构的科创数据,提出了一种多源科创数据的采集方法,满足了科创数据采集所需的数据量足且全面、数据源复杂、时效性等特点,同时耗时短、效率高。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
在附图中:
图1是本发明采集方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例:如图1所示,本发明提供一种技术方案,一种多源科创资源数据采集方法,采集方法包括爬虫模块、路由模块和动态页面解析模块;
爬虫模块是指一个爬虫模块的集群中,会包含多个爬虫模块,爬虫模块主要的两个功能是页面下载和页面信息提取;
路由模块的主要功能是对整个分布式网页爬虫系统进行任务的接受、管理、分发,任务的负载均衡,爬虫服务和动态页面解析服务节点的管理以及系统内心跳包的发送;
动态页面解析模块是指以集群的模式针对动态页面进行页面解析;
具体的采集方法包括如下步骤:
S1、数据采集阶段;
S2、数据分析阶段;
S3、数据存储阶段;
S1中,数据采集阶段包括配置抓取目标、读取解析数据页面和启动信息采集,S2中,数据分析阶段包括数据解析、数据规范化处理和数据预处理,S3中,数据存储阶段包括数据分类、数据存储和数据反馈;
数据采集阶段在采集过程中基于Dis-Dyn Crawler架构,采用基于面向服务的架构体系,提高系统整体的吞吐性能,将动态页面处理功能独立出来形成一个单独的服务,当有动态页面需要解析时,能够快速及时的做出响应,完成动态页面的解析工作,且该架构体系可以完成系统的模块解耦,提高系统的灵活性,使得系统能够容易的增加或者删除系统中的服务模块。
基于上述技术方案,科创资源数据采集对象包括科研文献数据库、专利数据库、国家自然科学基金项目数据库、国家社科基金项目数据库、金融数据库和政府与企业数据库;
多源数据体现在原始数据的多源性和IP库定位数据的多源性,原始数据的多源性体现在数据来自不同的采集系统,且类型不同、格式不同,IP库数据的多源性体现在三层IP库模型。
基于上述技术方案,配置抓取目标是指采用基于Heritrix可配置主题的聚焦爬虫的网页大数据抓取方法,依据爬取需求定义好该聚焦网络爬虫爬取的目标,并进行相关的描述,获取初始URL,Heritrix会从线程池里分配给每个URL一个独立的线程,过滤掉与目标无关的网页,同时将与目标相关的URL地址存放到一个新的URL列表中,用于去重和判断爬取的进程;
在新的URL队列中,采取广度搜索策略,确定URL的优先级,并确定下一步要爬取的URL地址,用代码模拟客户端向服务器发送请求,编辑检索模式选择关键词检索或全域检索,在网页端自动获取指定的原始数据;
读取解析数据页面是指路由模块在启动后会监听相应的端口,对外提供爬虫任务接受接口,接受外界发送的爬虫任务,爬虫任务应包括网站的URL队列,页面处理程序所在的包以及文件名;
在爬虫任务发送时,会指定一个主工作节点和多个从工作节点,主工作节点接受到爬虫任务后会立刻根据种子URL进行页面抓取并将提取的URL存入到Redis缓存中,其他的从节点也会依次启动,至此主从爬虫节点会全部启动相互协作完成爬虫任务;
以循环迭代的方式采集整个表层网络资源,利用JavaScript脚本引擎或表单提交器获取动态页面内容,以完成对深层网络资源的采集;
启动信息采集是指根据网页分析算法初步过滤与所需主题无关的原始数据,尽量提取与主题相关的原始数据,汇总形成科创数据集合,当节点多次尝试后发现待抓取的URL为仍然为空时,主爬虫节点会向路由模块发送爬虫任务结束消息,路由模块将该爬虫任务标记为己完成,至此该爬虫任务结束;
在数据采集阶段,将待访问的数据队列作为抓取对象,通过使用者或外部程序进行初始化处理,解析该页面提取数据特征,根据提取出的特征,存储此时界面上全部数据信息,以此为基础,每个爬虫的循环规律都是通过解析出的数据特征中挑选一个特征进行爬行,直至所需数据抓取完毕为止;
科创类数据通常并不具有明显规律性和排列顺序,具有较高的复杂性,故在采集时,可通过局部样本特征对数据集合进行分析,同时对其中蕴含的关键信息进行抓取,通过抓取主要特征,实现数据的分类和整理,提高搜索效率;
在科创资源数据抓取时,采取广度优先策略,以顺沿的形式向节点树宽度方向分布式,抓取初始网页中所有信息,随机抓取一个网页地址,重复该过程,可进一步提高数据抓取性能,实现爬虫在访问网页过程中以并行的方式访问服务器,可确保网络爬虫工作的过程中,网页数据库能够正常运行与爬虫抓取信息间找到一个平衡中心,基于网络爬虫对科创数据进行抓取,对数据关键特征完成抓取任务。
基于上述技术方案,数据解析是指在得到待采集的科创数据集合时,将源文件保存到HDFS文件系统中,以装载到Hadoop集群中,判断数据来源特征以及数据种类,并解析其数据格式、存储格式、数据字段、更新机制、信息维度、数据质量,以准确读取数据内容;
配置采集科创资源的规则,配置规则包含配置采集范围、配置采集规则、时间设定、别名扩展、对象监测规则,确保获取的资源数据有效性,识别采集对象内容类型,编辑采集字段,映射标准字段,别名自动识别与扩展,依据采集对象更新情况,设置数据时间段,调整页面循环设置,定时采集,识别采集到的对象,调整页面循环设置,识别数据文件格式并选择导出路径;
数据规范化处理,由于采集到科创资源类型多样,需要对数据源特征进行分析,包括来源地址、数据分布、存储格式、数据字段、更新机制、信息维度、数据质量方面进行解析和预处理,针对数据中可能存在的问题,如字段标准各异、冗余字符串等,进行排查与处理,可通过专家知识、人工标注等方法,实现多源异构的科创资源数据的标准化与规范化;
由于科创数据来自多个不同的平台,在不同来源的数据中不可避免的会存在数据重复的现象,因此在解析和预处理之后需要对得到的批量科创数据进行去重处理,合并去重根据解析与预处理的数据信息进行进一步实体提取,并以此作为数据合并的载体,按处理规则进行成果数据的合并、结果验证与消除数据的重复项,数据清洗与去重部分可以采用5个步骤完成:预处理、缺失值清洗、格式内容清洗、去重清洗、非需求数据清洗;
通过解析与预处理将采集到的多源异构的科创资源数据进行存储格式的解析、数据标准化处理、元数据清洗与规范,以实现多源数据结构化与元数据描述规范化;
数据预处理,是指运用MAP-Reduce程序对原始数据进行初步预处理,对其进行数据清洗以及去重处理,去除无效的、非法的数据,过滤无关字段,留下不重复的元数据;
在数据分析阶段,利用FTP传输服务,在各个采集服务器建立FTP服务端,后使用数据搜集服务器以FTP客户端的身份与之建立连接并下载;
在搜集服务器中匹配各服务器的IP地址、FTP下载端口号、根目录路径的信息,根据后续的数据反馈,更新服务器本身的配置,也可增加配置来动态扩展,如监测时间间隔、下载的时间策略,具体包括FTP下载模块、映射表模块、编码转换模块三个模块。
基于上述技术方案,数据分类是指通过Java API把文件从Hadoop读取出来,对不同来源的数据进行解析,将相近内容的数据相关联,并根据数据的解析结果,对处理后的数据分别进行保存;
数据存储是指将保存的各类数据上传至SQL数据库,建立总数据库,同时将原始科创数据导入HIVE数据仓库;
数据反馈是指系统将存储被爬取的网页,进行分析、过滤,建立索引,以便之后的查询和检索,根据解析内容对之后的抓取过程给出反馈和指导,以更新选择合适的网页搜索策略;
在数据存储阶段,为将采集、分析后的数据装载到Hadoop集群中,采用将源文件保存到HDFS文件系统中,即使用FileSystem API装在原始文件到HDFS系统;
为满足采集方法的CAP原则,即一致性、可用性、分区容忍性三个特性,采用复合数据架构,利用Hadoop集群(CP系统)解决大量数据的存储和计算问题,其中HDFS文件系统用于存储海量原始文件,HIVE数据仓库用于存储文件中的行数据;
将原始科创数据导入HIVE数据仓库,可满足溯源的需求,即可根据分析结果查看原始数据的需求,同时运用MAP-Reduce程序对原始数据进行初步预处理,提取五元组数据,即域名、源IP、目的IP、目的端口、日期,以便分类存储;
利用单台关系型数据库服务器做科创资源的存储,以便于用户后续的查询和操作,MAP-Reduce作业可以在Hadoop计算集群上实现并行计算,任务过程分为map阶段和reduce阶段,每个阶段以键值对作为输入和输出,为减少系统耦合性,Hadoop和存储数据库间的数据流仍采用平面文件的传输方式,通过Java API把文件从Hadoop读取出来,传输到存储数据库所在的分析服务器某目录下,期间装载过程采用BULK INSERT接口。
基于上述技术方案,分布式网页爬虫系统的目标就是将爬虫任务分配到一个爬虫集群中,集群中的各个工作节点会相互协作,共同完成爬虫任务,集群中的每一个节点通常是一个进程或者是一台机器,各个节点负责完成一个特定的功能;
一个强大的分布式网页爬虫系统为了能够使爬虫的效率更加高效,一般会将爬虫的功能模块划分的更加细致,方便对于分布式系统的构建,这样每一个功能模块都可以构建一个集群,集群内的所有节点共同完成相同的任务;
通过对爬虫任务的细致划分,将爬虫过程的耗时操作分摊到多台机器上,使得大量的爬虫任务的执行效率能够成倍的提升,进而提高爬虫效率。
基于上述技术方案,爬虫系统在实现的时候选择了ZeroMQ和Redis进行模块间的消息通信和状态交互,ZeroMQ和Redis在效率和功能上能够很好的满足系统的通信需求;
因为爬虫系统中的消息流量比较大,而ZeroMQ基于C语言开发的高效消息中间件系统在高并发流量情况下,能够很好的完成消息的传递,Redis底层实现是基于单线程的内存缓存系统,这种设计能够很好的完成对于多用户访问时的安全性保护;
系统中的路由模块是由ZeroMQ消息中间件的代理层充当的,负责对于整个系统节点监控和协调以及对于爬虫任务的公平分配,完成负载均衡的功能。
基于上述技术方案,科创资源多为动态页面,现有爬虫技术针对动态页面存在工作效率低、模块分解不细致、消耗大量硬件资源的缺陷,在进行页面解析时,选取HtmlUnit作为解析工具,它是由纯Java编写开发的,实现了现有浏览器的大部分功能,HtmlUnit除了对于动态页面的解析和异步Ajax请求的支持以外,对于表单提交和加载也有很好的支持;
基于上述技术方案,在设计时,对HtmlUnit加入了一层本地JavaScript文件缓存,只有JavaScript集群中的节点在首次解析JavaScript文件时才会从远程服务器获取该文件,以后的JavaScript文件获取都是从本地缓存中直接获取,无需发起获取JavaScript文件的HTTP请求,进一步提高了针对动态网页的执行效率。
基于上述技术方案,科创资源数据量大、结构繁杂,且再采集时对页面下载速度,即提高爬虫系统性能,有较高要求,在应对高并发请求下爬虫系统的总体吞吐量时,本采用HttpAsyncClient作为下载器,实现异步的网络资源下载,异步的请求一般会指定一个特定的线程来处理请求事件,并完成相应的事件分发,该线程通常被称为反应器,当有事件到达时,通过事件触发的方式来完成线程间的消息通信,而不必让用户线程一直等待,这种HTTP请求的方式能够提高线程的工作效率,进而提高爬虫系统的整体吞吐量;
在对科创资源进行爬取时,会首先检查网站的Robts协议,如果存在,爬虫会在相关协议内容确定的范围内进行数据抓取,如果不存在,爬虫会通过提供的链接进行抓取。
最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多源科创资源数据采集方法,其特征在于:所述采集方法包括爬虫模块、路由模块和动态页面解析模块;
所述爬虫模块是指一个爬虫模块的集群中,会包含多个爬虫模块,爬虫模块主要的两个功能是页面下载和页面信息提取;
所述路由模块的主要功能是对整个分布式网页爬虫系统进行任务的接受、管理、分发,任务的负载均衡,爬虫服务和动态页面解析服务节点的管理以及系统内心跳包的发送;
所述动态页面解析模块是指以集群的模式针对动态页面进行页面解析;
具体的数据采集方法包括如下步骤:
S1、数据采集阶段;
S2、数据分析阶段;
S3、数据存储阶段;
所述S1中,数据采集阶段包括配置抓取目标、读取解析数据页面和启动信息采集,所述S2中,数据分析阶段包括数据解析、数据规范化处理和数据预处理,所述S3中,数据存储阶段包括数据分类、数据存储和数据反馈;
数据采集阶段在采集过程中基于Dis-Dyn Crawler架构,采用基于面向服务的架构体系,将动态页面处理功能独立出来形成一个单独的服务。
2.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:科创资源数据采集对象包括科研文献数据库、专利数据库、国家自然科学基金项目数据库、国家社科基金项目数据库、金融数据库和政府与企业数据库。
3.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:所述配置抓取目标是指采用基于Heritrix可配置主题的聚焦爬虫的网页大数据抓取方法,依据爬取需求定义好该聚焦网络爬虫爬取的目标,并进行相关的描述,获取初始URL,Heritrix会从线程池里分配给每个URL一个独立的线程,过滤掉与目标无关的网页,同时将与目标相关的URL地址存放到一个新的URL列表中,用于去重和判断爬取的进程;
在新的URL队列中,采取广度搜索策略,确定URL的优先级,并确定下一步要爬取的URL地址,用代码模拟客户端向服务器发送请求,编辑检索模式选择关键词检索或全域检索,在网页端自动获取指定的原始数据;
所述读取解析数据页面是指路由模块在启动后会监听相应的端口,对外提供爬虫任务接受接口,接受外界发送的爬虫任务,爬虫任务应包括网站的URL队列,页面处理程序所在的包以及文件名;
在爬虫任务发送时,会指定一个主工作节点和多个从工作节点,主工作节点接受到爬虫任务后会立刻根据种子URL进行页面抓取并将提取的URL存入到Redis缓存中,其他的从节点也会依次启动,至此主从爬虫节点会全部启动相互协作完成爬虫任务;
以循环迭代的方式采集整个表层网络资源,利用JavaScript脚本引擎或表单提交器获取动态页面内容,以完成对深层网络资源的采集;
所述启动信息采集是指根据网页分析算法初步过滤与所需主题无关的原始数据;
在数据采集阶段,将待访问的数据队列作为抓取对象,通过使用者或外部程序进行初始化处理,解析该页面提取数据特征,根据提取出的特征,存储此时界面上全部数据信息,以此为基础,每个爬虫的循环规律都是通过解析出的数据特征中挑选一个特征进行爬行,直至所需数据抓取完毕为止;
在科创资源数据抓取时,以顺沿的形式向节点树宽度方向分布式,抓取初始网页中所有信息,随机抓取一个网页地址,重复该过程,基于网络爬虫对科创数据进行抓取,对数据关键特征完成抓取任务。
4.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:所述数据解析是指在得到待采集的科创数据集合时,将源文件保存到HDFS文件系统中,以装载到Hadoop集群中,判断数据来源特征以及数据种类,并解析其数据格式、存储格式、数据字段、更新机制、信息维度、数据质量,以准确读取数据内容;
配置采集科创资源的规则,配置规则包含配置采集范围、配置采集规则、时间设定、别名扩展、对象监测规则,确保获取的资源数据有效性,识别采集对象内容类型,编辑采集字段,映射标准字段,别名自动识别与扩展,依据采集对象更新情况,设置数据时间段,调整页面循环设置,定时采集,识别采集到的对象,调整页面循环设置,识别数据文件格式并选择导出路径;
所述数据规范化处理,由于采集到科创资源类型多样,需要对数据源特征进行分析,包括来源地址、数据分布、存储格式、数据字段、更新机制、信息维度、数据质量方面进行解析和预处理,针对数据中可能存在的问题;
通过解析与预处理将采集到的多源异构的科创资源数据进行存储格式的解析、数据标准化处理、元数据清洗与规范,以实现多源数据结构化与元数据描述规范化;
所述数据预处理,是指运用MAP-Reduce程序对原始数据进行初步预处理,对其进行数据清洗以及去重处理,去除无效的、非法的数据,过滤无关字段,留下不重复的元数据;
在数据分析阶段,利用FTP传输服务,在各个采集服务器建立FTP服务端,后使用数据搜集服务器以FTP客户端的身份与之建立连接并下载;
在搜集服务器中匹配各服务器的IP地址、FTP下载端口号、根目录路径的信息,根据后续的数据反馈,更新服务器本身的配置,也可增加配置来动态扩展。
5.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:所述数据分类是指通过Java API把文件从Hadoop读取出来,对不同来源的数据进行解析,将相近内容的数据相关联,并根据数据的解析结果,对处理后的数据分别进行保存;
所述数据存储是指将保存的各类数据上传至SQL数据库,建立总数据库,同时将原始科创数据导入HIVE数据仓库;
所述数据反馈是指系统将存储被爬取的网页,进行分析、过滤,建立索引,以便之后的查询和检索,根据解析内容对之后的抓取过程给出反馈和指导,以更新选择合适的网页搜索策略;
在数据存储阶段,为将采集、分析后的数据装载到Hadoop集群中,采用将源文件保存到HDFS文件系统中,即使用FileSystem API装在原始文件到HDFS系统;
将原始科创数据导入HIVE数据仓库,可满足溯源的需求,即可根据分析结果查看原始数据的需求,同时运用MAP-Reduce程序对原始数据进行初步预处理,提取五元组数据,即域名、源IP、目的IP、目的端口、日期,以便分类存储;
利用单台关系型数据库服务器做科创资源的存储,以便于用户后续的查询和操作,MAP-Reduce作业可以在Hadoop计算集群上实现并行计算,任务过程分为map阶段和reduce阶段,每个阶段以键值对作为输入和输出,为减少系统耦合性,Hadoop和存储数据库间的数据流仍采用平面文件的传输方式,通过Java API把文件从Hadoop读取出来,传输到存储数据库所在的分析服务器某目录下,期间装载过程采用BULK INSERT接口。
6.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:分布式网页爬虫系统的目标就是将爬虫任务分配到一个爬虫集群中,集群中的各个工作节点会相互协作,共同完成爬虫任务。
7.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:爬虫系统在实现的时候选择了ZeroMQ和Redis进行模块间的消息通信和状态交互;
系统中的路由模块是由ZeroMQ消息中间件的代理层充当的,负责对于整个系统节点监控和协调以及对于爬虫任务的公平分配,完成负载均衡的功能。
8.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:科创资源多为动态页面,在进行页面解析时,选取HtmlUnit作为解析工具,它是由纯Java编写开发的,HtmlUnit除了对于动态页面的解析和异步Ajax请求的支持以外,对于表单提交和加载也有很好的支持。
9.根据权利要求8所述的一种多源科创资源数据采集方法,其特征在于:在设计时,对HtmlUnit加入了一层本地JavaScript文件缓存,只有JavaScript集群中的节点在首次解析JavaScript文件时才会从远程服务器获取该文件,以后的JavaScript文件获取都是从本地缓存中直接获取,无需发起获取JavaScript文件的HTTP请求。
10.根据权利要求1所述的一种多源科创资源数据采集方法,其特征在于:采用HttpAsyncClient作为下载器,实现异步的网络资源下载,异步的请求一般会指定一个特定的线程来处理请求事件,当有事件到达时,通过事件触发的方式来完成线程间的消息通信,而不必让用户线程一直等待;
在对科创资源进行爬取时,会首先检查网站的Robts协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505650.8A CN113918793A (zh) | 2021-12-10 | 2021-12-10 | 一种多源科创资源数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505650.8A CN113918793A (zh) | 2021-12-10 | 2021-12-10 | 一种多源科创资源数据采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918793A true CN113918793A (zh) | 2022-01-11 |
Family
ID=79248463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111505650.8A Pending CN113918793A (zh) | 2021-12-10 | 2021-12-10 | 一种多源科创资源数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918793A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490623A (zh) * | 2022-04-01 | 2022-05-13 | 深圳新闻网传媒股份有限公司 | 基于信息流的大数据存储系统 |
CN114547171A (zh) * | 2022-02-22 | 2022-05-27 | 广州品推科技有限公司 | 一种基于大数据分析的业务数据的处理方法及系统 |
CN114925259A (zh) * | 2022-04-20 | 2022-08-19 | 北京网景盛世技术开发中心 | 一种基于政府门户和新媒体的信息采集抽取方法及系统 |
CN115080513A (zh) * | 2022-08-22 | 2022-09-20 | 南京中卫信软件科技股份有限公司 | 适用于多机构同类文件的数据处理方法 |
CN115225719A (zh) * | 2022-08-31 | 2022-10-21 | 中建电子商务有限责任公司 | 一种分布式定向网络数据采集解析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫系统 |
CN107220297A (zh) * | 2017-05-02 | 2017-09-29 | 北京大学 | 面向软件项目的多源异构数据自动收集方法及系统 |
CN111708773A (zh) * | 2020-08-13 | 2020-09-25 | 江苏宝和数据股份有限公司 | 一种多源科创资源数据融合方法 |
-
2021
- 2021-12-10 CN CN202111505650.8A patent/CN113918793A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫系统 |
CN107220297A (zh) * | 2017-05-02 | 2017-09-29 | 北京大学 | 面向软件项目的多源异构数据自动收集方法及系统 |
CN111708773A (zh) * | 2020-08-13 | 2020-09-25 | 江苏宝和数据股份有限公司 | 一种多源科创资源数据融合方法 |
Non-Patent Citations (1)
Title |
---|
JIANFU CAI 等: ""Dis-Dyn Crawler:a distributed crawler for dynamic web page", 《ICMMCCE》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547171A (zh) * | 2022-02-22 | 2022-05-27 | 广州品推科技有限公司 | 一种基于大数据分析的业务数据的处理方法及系统 |
CN114490623A (zh) * | 2022-04-01 | 2022-05-13 | 深圳新闻网传媒股份有限公司 | 基于信息流的大数据存储系统 |
CN114925259A (zh) * | 2022-04-20 | 2022-08-19 | 北京网景盛世技术开发中心 | 一种基于政府门户和新媒体的信息采集抽取方法及系统 |
CN115080513A (zh) * | 2022-08-22 | 2022-09-20 | 南京中卫信软件科技股份有限公司 | 适用于多机构同类文件的数据处理方法 |
CN115225719A (zh) * | 2022-08-31 | 2022-10-21 | 中建电子商务有限责任公司 | 一种分布式定向网络数据采集解析方法 |
CN115225719B (zh) * | 2022-08-31 | 2023-01-10 | 中建电子商务有限责任公司 | 一种分布式定向网络数据采集解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113918793A (zh) | 一种多源科创资源数据采集方法 | |
US11449562B2 (en) | Enterprise data processing | |
US10311055B2 (en) | Global query hint specification | |
JP6144700B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
CN111400326B (zh) | 一种智慧城市数据管理系统及其方法 | |
CN106982150B (zh) | 一种基于Hadoop的移动互联网用户行为分析方法 | |
CN106547914B (zh) | 一种数据采集管理系统及其方法 | |
CN104679898A (zh) | 一种大数据访问方法 | |
US20120016901A1 (en) | Data Storage and Processing Service | |
US20070168336A1 (en) | Method and apparatus for a searchable data service | |
CN104778270A (zh) | 一种用于多文件的存储方法 | |
US11500871B1 (en) | Systems and methods for decoupling search processing language and machine learning analytics from storage of accessed data | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
US11573955B1 (en) | Data-determinant query terms | |
CN103258017B (zh) | 一种并行的垂直交叉网络数据采集方法及系统 | |
US11727007B1 (en) | Systems and methods for a unified analytics platform | |
CN106709010A (zh) | 一种基于海量小文件高效上传hdfs的方法及系统 | |
CN106156319A (zh) | 可伸缩的分布式的资源描述框架数据存储方法及装置 | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
Mehmood et al. | Distributed real-time ETL architecture for unstructured big data | |
Özsu et al. | Distributed and Parallel Database Systems. | |
US10592506B1 (en) | Query hint specification | |
CN112182031B (zh) | 数据查询方法及装置、存储介质、电子装置 | |
CN112597369A (zh) | 基于改良云平台的网页蜘蛛主题式搜索系统 | |
CN110008448A (zh) | 将SQL代码自动转换为Java代码的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220111 |