CN110297960A - 一种基于配置的分布式公文数据采集系统 - Google Patents
一种基于配置的分布式公文数据采集系统 Download PDFInfo
- Publication number
- CN110297960A CN110297960A CN201910523201.2A CN201910523201A CN110297960A CN 110297960 A CN110297960 A CN 110297960A CN 201910523201 A CN201910523201 A CN 201910523201A CN 110297960 A CN110297960 A CN 110297960A
- Authority
- CN
- China
- Prior art keywords
- data
- configuration
- task
- distributed
- doc
- 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
- 238000013500 data storage Methods 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 230000009193 crawling Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 2
- 238000012800 visualization Methods 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- 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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于配置的分布式公文数据采集系统,包括配置校验器、爬虫任务处理器、数据存储器;所述配置校验器、爬虫任务处理器、数据存储器由上至下逐层部署。本发明具备高效性,通过配置化实现数据实时获取,无需编码,有效提高了公文数据的获取效率;具备可管理性,通过可视化界面对公文模板和获取结果进行展示、统一操作管理,可通过邮件推送功能获取数据结果增量统计,可通过报警监控功能进行问题追踪,便于维护;具备可扩展性,可以根据需要进行水平扩展,实现分布式数据采集;具备数据异构性,爬取海量多数据源的公文数据时,通过Redis作为中间件,屏蔽了数据源和数据存储系统的异构性。
Description
技术领域
本发明涉及一种基于配置的分布式公文数据采集系统,属于大数据技术领域。
背景技术
21世纪是一个大数据时代,数据无处不在,存在于生活的方方面面。无论是出于数据分析还是产品需求,我们都需要从某些网站提取出我们感兴趣,有价值的内容。但由于收集数据是一个重复性工作,且人力有穷尽,所以爬虫应运而生,并且迅速的发展壮大。
爬虫是通过编写一段代码,来获取目标网站上我们感兴趣的数据,减少人为工作量。爬虫的主要流程:获取一个初始网页的URL,获得初始URL上的所有信息,再次在获得的信息中抓取我们感兴趣的内容,并对该内容进行解析匹配,最终保存到数据库。对所有URL分别执行上述流程,直到遍历完所有的URL。一般而言,爬虫总体可分为网络请求模块、爬取流程控制模块和内容分析提取模块三个模块.
如今市面上的爬虫功能一般分为数据采集(下载相关的网页),数据处理(对相关网页的数据进行分析)和数据存储(将所需要爬取的内容进行保存)三个部分的内容,而高级的爬虫则使用了分布式技术以及并发编程用于相关数据爬取以及分析。在过去爬虫所爬取的网站页面主要是html文档本身,所以爬虫所抓取的内容大部分都是html中包含的内容,但是随着前端技术的发展,动态网页的概率越来越大,这些动态网站中使用了ajax技术,相比起传统的html文档,如今很多网页的信息都是通过javascript动态生成的。网页的多样性导致了常见的爬虫程序无法适用不同格式的网页,在针对不同格式的网站爬取时后端程序员需要在原有代码上进行修改,这极大的降低了工作效率和代码维护性。
发明内容
为解决上述技术问题,本发明提供了一种基于配置的分布式公文数据采集系统,该基于配置的分布式公文数据采集系统通过以配置文件为核心的方式,可提供在线配置的方式以替代现有的编写执行代码的方式,从而极大的提高工作效率。
本发明通过以下技术方案得以实现。
本发明提供的一种基于配置的分布式公文数据采集系统,包括配置校验器、爬虫任务处理器、数据存储器;所述配置校验器、爬虫任务处理器、数据存储器由上至下逐层部署,其中:
配置校验器读取配置文件,对读取到的配置文件进行校验,校验通过则根据配置文件的配置项调用爬虫任务处理器执行;
爬虫任务处理器根据配置项生成任务列表,以预设周期对任务列表中的任务逐项执行,每项任务根据配置项的内容爬取数据并将爬取到的数据通过数据存储器进行存储,爬取数据过程中对爬取的数据进行模板匹配,爬取数据和模板匹配的过程与结果信息保存于详情列表;
数据存储器对所爬取的数据的数据格式进行解析,将文本数据以结构化方式存储,将图片数据和附件以非结构化方式存储。
还包括任务监控模块,任务监控模块对任务列表的生成过程以及任务列表中每项任务的执行状态进行监控。
还部署有REST服务模块,REST服务模块提供一次性的任务生成及调度。
所述数据存储器中,对于非结构化方式存储的数据,将指向数据路径的字段以json方式存储于文本数据。
所述数据存储器为Redis。
所述配置文件的配置项至少包括待爬取网站信息、数据爬取任务信息和需要获取的字段。
所述需要获取的字段以xpath的方式进行配置。
所述配置校验器进行校验时,分别对待爬取网站信息和数据爬取任务信息进行校验。
所述预设周期为20分钟。
本发明的有益效果在于:具备高效性,通过配置化实现数据实时获取,无需编码,有效提高了公文数据的获取效率;具备可管理性,通过可视化界面对公文模板和获取结果进行展示、统一操作管理,可通过邮件推送功能获取数据结果增量统计,可通过报警监控功能进行问题追踪,便于维护;具备可扩展性,可以根据需要进行水平扩展,实现分布式数据采集;具备数据异构性,爬取海量多数据源的公文数据时,通过Redis作为中间件,屏蔽了数据源和数据存储系统的异构性。
附图说明
图1是本发明的架构图;
图2是本发明的数据流图。
具体实施方式
下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。
如图1所示的一种基于配置的分布式公文数据采集系统,包括配置校验器、爬虫任务处理器、数据存储器;所述配置校验器、爬虫任务处理器、数据存储器由上至下逐层部署,其中:
配置校验器读取配置文件,对读取到的配置文件进行校验,校验通过则根据配置文件的配置项调用爬虫任务处理器执行;
爬虫任务处理器根据配置项生成任务列表,以预设周期对任务列表中的任务逐项执行,每项任务根据配置项的内容爬取数据并将爬取到的数据通过数据存储器进行存储,爬取数据过程中对爬取的数据进行模板匹配,爬取数据和模板匹配的过程与结果信息保存于详情列表;
数据存储器对所爬取的数据的数据格式进行解析,将文本数据以结构化方式存储,将图片数据和附件以非结构化方式存储。
还包括任务监控模块,任务监控模块对任务列表的生成过程以及任务列表中每项任务的执行状态进行监控。
还部署有REST服务模块,REST服务模块提供一次性的任务生成及调度。
所述数据存储器中,对于非结构化方式存储的数据,将指向数据路径的字段以json方式存储于文本数据。
所述数据存储器为Redis。
所述配置文件的配置项至少包括待爬取网站信息、数据爬取任务信息和需要获取的字段。
所述需要获取的字段以xpath的方式进行配置。
所述配置校验器进行校验时,分别对待爬取网站信息和数据爬取任务信息进行校验。
所述预设周期为20分钟。
具体的,本发明在实施时应当注意如下:
1.网站信息配置和任务配置
(1)爬取网站基本信息配置。主要包括,网站地址,名称等基本信息配置,获取功能列表信息的配置,采用什么类型工具进行抓取等作为爬虫对于该网站的基本配置输入项。
(2)任务配置,爬虫任务作为可配置化爬虫应用系统的对于任务进行管理的基本单元,主要将目标网站作为一个基本任务单元进行管理,对任务基本信息进行配置,比如任务的启动暂停。
(3)公文中需要获取的字段的xpath配置在页面详情页进行配置,如公文的标题,公文正文部分,公文落款,公文发布日期,发文字号,附件,图片等属性。
2.配置校验器
配置校验器负责检查配置项的字段配置参数是否准确,主要功能是通过获取目标站点相应字段是否准确,
(1)验证公文列表。通过列表校验器可以校验目标站点公文列表xpath是否准确,验证准确后方可保存在公文列表信息配置。
(2)验证公文详情。通过公文详情校验器可以校验目标站点公文详情中需要获取的字段抓取结果是否准确,验证准确后方可保存公文详情获取的配置。
3.任务处理器
(1)公文列表任务。公文列表任务定时启动,可通过配置化指定执行周期,默认每20分钟执行一次。公文列表任务通过读取数据库中网站基本信息配置和任务配置参数,开始执行公文列表抓取,以获得具体的公文详情页地址。获得公文详情页地址和标题后,将其以json对象形式保存在Redis的List数据结构中,其key值为由任务Id和列表Id组装而成。
(2)公文详情任务。上一步已经将需要抓取的公文详情地址存储在Redis中,通过遍历Redis中的key,再依次弹出每一条目标公文地址,使用webclient或者webdriver进行公文详情页的抓取和字段解析任务。任务解析使用多线程执行,对公文解析通过任务id进行分组,按照任务id向线程池提交任务。提交解析任务到线程池,线程实现对公文详情页进行字段解析,并将解析结果作为对象传递到任务解析类,任务解析类通过判定关键字段是否获取到,决定是否需要再次重试抓取。当重试次数达到阈值后,直接丢弃掉该公文详情地址。
4.数据存储器
获取到公文详情数据后需要将其存储,由于公文中较为普遍的数据格式有文本数据,图片数据,附件等文件数据。数据种类繁杂,本系统采用将文本数据解析后以结构化数据库方式存储,将图片和附件等数据通过下载后,指向其路径在结构化数据库中对标文本数据中的字段,以json的方式存储,在该字段中同时描述了由于网络原因或者网站权限问题造成下载失败的状态。
5.任务监控
整个爬虫系统在运行中由于需要执行列表抓取和详情抓取,难免因为网络原因或者网站发生部分或者全部变化导致抓取失败,这种情况需要得到有效的监控,以保证在大量目标站点中查找失败的并进行修改。任务监控模块主要针对列表抓取失败或者未通过配置获取到数据,将其记录在监控模块;任务监控模块也会针对公文详情页抓取失败或者由于其他原因导致的异常将其记录在监控模块中。
6.Rest服务
Rest服务主要用来提供一些本系统外涉及到的通过某一公文地址获取公文详情,修改某些公文里面的节点或者属性等。
由此,本发明的使用及执行过程如图2所示,在对待爬取网站信息(即网站基本信息配置)、数据爬取任务信息(即公文列表解析模板配置)和需要获取的字段进行配置后,系统根据配置的内容执行爬取、分析及存储,整个过程不需要编写执行代码,从而实现高效性、可管理性、可扩展性,而基于数据存储器的设置,则有效实现数据异构性。
由于本发明主要针对公文数据,而公文数据的内容较为统一,格式也较为规范和固定,所以对传统的爬虫进行了优化,提出一种基于配置化的爬虫应用系统,由此可提供一个在线配置平台,将Java应用程序和xpath结合,通过对不同政府单位网站的各个信息模块进行参数配置能有效的爬取公文信息,极大的提高工作效率。
Claims (9)
1.一种基于配置的分布式公文数据采集系统,包括配置校验器、爬虫任务处理器、数据存储器,其特征在于:所述配置校验器、爬虫任务处理器、数据存储器由上至下逐层部署,其中:
配置校验器读取配置文件,对读取到的配置文件进行校验,校验通过则根据配置文件的配置项调用爬虫任务处理器执行;
爬虫任务处理器根据配置项生成任务列表,以预设周期对任务列表中的任务逐项执行,每项任务根据配置项的内容爬取数据并将爬取到的数据通过数据存储器进行存储,爬取数据过程中对爬取的数据进行模板匹配,爬取数据和模板匹配的过程与结果信息保存于详情列表;
数据存储器对所爬取的数据的数据格式进行解析,将文本数据以结构化方式存储,将图片数据和附件以非结构化方式存储。
2.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:还包括任务监控模块,任务监控模块对任务列表的生成过程以及任务列表中每项任务的执行状态进行监控。
3.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:还部署有REST服务模块,REST服务模块提供一次性的任务生成及调度。
4.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:所述数据存储器中,对于非结构化方式存储的数据,将指向数据路径的字段以json方式存储于文本数据。
5.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:所述数据存储器为Redis。
6.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:所述配置文件的配置项至少包括待爬取网站信息、数据爬取任务信息和需要获取的字段。
7.如权利要求6所述的基于配置的分布式公文数据采集系统,其特征在于:所述需要获取的字段以xpath的方式进行配置。
8.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:所述配置校验器进行校验时,分别对待爬取网站信息和数据爬取任务信息进行校验。
9.如权利要求1所述的基于配置的分布式公文数据采集系统,其特征在于:所述预设周期为20分钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910523201.2A CN110297960A (zh) | 2019-06-17 | 2019-06-17 | 一种基于配置的分布式公文数据采集系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910523201.2A CN110297960A (zh) | 2019-06-17 | 2019-06-17 | 一种基于配置的分布式公文数据采集系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110297960A true CN110297960A (zh) | 2019-10-01 |
Family
ID=68028144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910523201.2A Pending CN110297960A (zh) | 2019-06-17 | 2019-06-17 | 一种基于配置的分布式公文数据采集系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297960A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277560A (zh) * | 2019-12-24 | 2020-06-12 | 普世(南京)智能科技有限公司 | 一种基于高带宽物理隔离单向传输的安全情报采集导入整编方法及系统 |
CN111966672A (zh) * | 2020-08-17 | 2020-11-20 | 中电科大数据研究院有限公司 | 一种可插拔分布式公文自动化清洗系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130218865A1 (en) * | 2012-02-21 | 2013-08-22 | Spotright, Inc. | Systems and methods for identifying and analyzing internet users |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储系统的网络爬虫系统 |
CN106096056A (zh) * | 2016-06-30 | 2016-11-09 | 西南石油大学 | 一种基于分布式的舆情数据实时采集方法和系统 |
-
2019
- 2019-06-17 CN CN201910523201.2A patent/CN110297960A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130218865A1 (en) * | 2012-02-21 | 2013-08-22 | Spotright, Inc. | Systems and methods for identifying and analyzing internet users |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储系统的网络爬虫系统 |
CN106096056A (zh) * | 2016-06-30 | 2016-11-09 | 西南石油大学 | 一种基于分布式的舆情数据实时采集方法和系统 |
Non-Patent Citations (1)
Title |
---|
张倩等: "自动结构化数据的电商网站主题爬虫研究", 计算机系统应用 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277560A (zh) * | 2019-12-24 | 2020-06-12 | 普世(南京)智能科技有限公司 | 一种基于高带宽物理隔离单向传输的安全情报采集导入整编方法及系统 |
CN111966672A (zh) * | 2020-08-17 | 2020-11-20 | 中电科大数据研究院有限公司 | 一种可插拔分布式公文自动化清洗系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10474455B2 (en) | Automating identification of code snippets for library suggestion models | |
US11494181B2 (en) | Automating generation of library suggestion engine models | |
US10732966B2 (en) | Library model addition | |
CN106126648B (zh) | 一种基于重做日志的分布式商品信息爬虫方法 | |
CN112597373B (zh) | 一种基于分布式爬虫引擎的数据采集方法 | |
CN109376291B (zh) | 一种基于网络爬虫的网站指纹信息扫描的方法及装置 | |
US20140109053A1 (en) | Identifying high impact bugs | |
CN110688307B (zh) | JavaScript代码检测方法、装置、设备和存储介质 | |
Dagenais et al. | Using traceability links to recommend adaptive changes for documentation evolution | |
CN108717435A (zh) | 网页加载方法、信息处理方法、计算机设备及存储介质 | |
Thomas et al. | Mining unstructured software repositories | |
Biagiola et al. | Web test dependency detection | |
CN107092632A (zh) | 数据处理方法及装置 | |
EP3230869A1 (en) | Separating test verifications from test executions | |
CN110297960A (zh) | 一种基于配置的分布式公文数据采集系统 | |
KR101696694B1 (ko) | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 | |
CN114491206A (zh) | 一种用于新闻博客类网站的通用低代码爬虫方法及系统 | |
Dou et al. | Model-driven trace diagnostics for pattern-based temporal specifications | |
Cambronero et al. | Active learning for software engineering | |
Lormans et al. | An industrial case study in reconstructing requirements views | |
Hammoudi et al. | On the effect of incompleteness to check requirement-to-method traces | |
CN116756021A (zh) | 基于事件分析的故障定位方法、装置、电子设备及介质 | |
Zhang et al. | Towards mutation analysis for use cases | |
CN112464242A (zh) | 一种网页平台漏洞采集方法、系统、终端及存储介质 | |
Xu et al. | Statically detect data races for WS-BPEL web services by constraint solver |
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 |
Application publication date: 20191001 |
|
RJ01 | Rejection of invention patent application after publication |