CN110769026A - 分布式互联网信息采集系统及方法 - Google Patents
分布式互联网信息采集系统及方法 Download PDFInfo
- Publication number
- CN110769026A CN110769026A CN201910848301.2A CN201910848301A CN110769026A CN 110769026 A CN110769026 A CN 110769026A CN 201910848301 A CN201910848301 A CN 201910848301A CN 110769026 A CN110769026 A CN 110769026A
- Authority
- CN
- China
- Prior art keywords
- acquisition
- download
- script
- downloading
- task scheduling
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种分布式互联网信息采集系统及方法,旨在解决现有数据采集速度慢、适用范围窄的技术问题。本发明采集系统包括采集脚本编制模块、任务调度模块、微服务框架、数据存储模块,采集脚本编制模块用于生成记载采集需求的采集脚本;任务调度模块用于调整上述采集脚本的执行顺序;微服务框架与任务调度模块互相通信,用于接收采集脚本并分配至不同的下载节点;数据存储模块用于存储下载节点传送的下载内容。采集方法包括任务加载、任务解析、节点分配。本发明的有益技术效果在于:适用范围广、适用性强、采集效率高。
Description
技术领域
本发明涉及互联网信息技术领域,具体涉及一种分布式互联网信息采集系统及方法。
背景技术
互联网中含有大量各行各业用户需要的有价值的信息,用户采集这些信息通常有三种方式:(1)内容管理系统,简称cms,如织梦、帝国等品牌,该系统包括采集服务,在系统后台提供有针对通用型新闻网站的简单采集服务;但是其使用范围有限,灵活性不差强人意,而且还需要手动配置响应的正则匹配抽取规则,操作比较繁琐;(2)针对专门网站的信息采集系统,该系统可以根据不同网站发布的网页信息结构需求,进行定制化开发,以最大限度采集到所需数据,但是由于其针对性强,通用性差,需要很多套采集应用支持,维护成本比较高,特别是当被采集的网站升级改版时,随之进行的更新工作量更大;(3)单机信息采集平台,在针对专门网站的信息采集系统的基础上,将采集分为网页结构识别逻辑、通用下载、数据清洗、数据存储等,其中网页结构识别逻辑由不同的脚本实现,对于不同的网站只需要开发相应的采集脚本,其它部分可以不做修改,这样就减少了工作量,但是该系统采集速度慢,无法完成大规模、高并发的采集任务。
发明内容
本发明提供一种分布式互联网信息采集系统及方法,以解决现有数据采集速度慢、适用范围窄的技术问题。
为解决上述技术问题,本发明采用如下技术方案:
设计一种分布式互联网信息采集系统,包括采集脚本编制模块、任务调度模块、微服务框架、数据存储模块,采集脚本编制模块用于生成记载采集需求的采集脚本;任务调度模块用于调整上述采集脚本的执行顺序;微服务框架与任务调度模块互相通信,用于接收采集脚本并分配至不同的下载节点;数据存储模块用于存储上述下载节点传送的下载内容。
进一步的,采集脚本包括资源下载单元和逻辑编制单元。
进一步的,逻辑编制单元包括登录信息、页面跳转信息、请求头设定信息。
进一步的,任务调度模块包括:
脚本加载单元,用于根据采集脚本的优先级确定脚本执行顺序;
逻辑执行单元,用于将所述采集脚本发送至虚拟机中编译并将所述资源下载单元通过所述微服务框架分配至下载节点; 结果处理单元,用于接收所述下载节点返回的下载数据。
进一步的,下载数据包括所述下载脚本中记载的下载内容以及是/否下载正确的信息。
还设计一种信息采集的方法,包括以下步骤:
S1,将记载有待采集内容的采集脚本加载至任务调度模块;
S2,确定上述采集脚本的执行顺序,分配硬件资源;
S3,解析脚本内容,将需要下载的请求通过微服务框架发送至下载节点;
S4,下载节点解析下载请求,下载请求内容并将下载结果返回至微服务框架;
S5,微服务框架将下载结果返回至任务调度模块并将该结果存储于数据存储模块。
进一步的,所述步骤S4中若返回出错信息,则该下载节点重新下载。
进一步的,若上述重新下载设定次数后仍无法完成下载,则将错误结果传送至微服务框架,微服务框架根据错误结果重新切换下载节点。
与现有技术相比,本发明的主要有益技术效果在于:
1.应用范围广,将资源下载与内容解析逻辑分开并脚本化后,整个采集系统可以应用到多个业务领域。
2.适应性强,对于新采集业务、采集逻辑变更等场景,通过修改采集脚本即可解决,无需重新开发、编译、部署。
3.满足大规模采集,采集系统支持多采集脚本并行采集,借助采集任务管理、监控,实时跟踪采集异常。
4.性能高效率快,通过分布式下载任务执行,将下载压力分散到众多下载节点,可满足高并发要求,依据需求快速完成采集任务。
附图说明
图1为本发明分布式互联网信息采集系统的架构图。
图2为本发明分布式互联网信息采集系统的硬件结构图。
图3为本发明信息采集方法的流程图。
具体实施方式
下面结合附图和实施例来说明本发明的具体实施方式,但以下实施例只是用来详细说明本发明,并不以任何方式限制本发明的范围。
实施例1:一种分布式互联网信息采集系统,参见图1至图2,以任务调度模块为中心,主要负责任务分配和下载资源解析;互联网信息的采集包括从服务器中下载原始资源(html、图像、附件等),然后对这些资源进行解析以使客户端可读。因此,加载到任务调度模块的采集脚本包括资源下载部分和逻辑解析部分。采集脚本由下位机加载至任务调度模块,任务调度模块根据优先级、负载均衡、定时设定策略安排采集脚本的执行顺序。采集脚本根据采集需求以及原始信息网站要求编制,脚本中包含但不限于以下逻辑编制:是否需要登录,是否需要页面跳转,请求头设定(cookie携带,请求参数设置等)。任务调度模块通过互联网和私密协议微服务框架通信,将采集脚本中的资源下载请求发送至各个下载节点,具体如下:
首先,任务调度模块加载采集脚本,任务初始化,分配相应内存、CPU等资源,初始化脚本运行虚拟机;然后,逻辑执行,在脚本运行虚拟机中执行采集脚本代码。对于资源下载的逻辑部分,通过“私密协议微服务框架”分发到下载节点执行,执行完成后返回下载结果。当前节点执行下载任务时,如果失败,允许5次尝试,5次尝试失败后,当前下载点返回错误信息。最后,结果处理,任务调度模块接收并处理下载点返回的结果信息。如果返回的是正确信息,任务调度模块调用解析模块,解析结果(如HTML网页内容等)并提取有价值内容,然后存储到数据库存储中。若返回的是下载失败的错误信息,任务调度模块需要尝试将任务发送到其他下载点重新执行下载操作。尝试5次依然无法下载时,需要记录下载出错日志,由人工排查出错原因。
其中私密协议为自定义字节流协议,将通信过程中的数据包进行封装。协议格式如下:数据包头(32字节)+ 数据区域(N字节)+ CRC校验( 2字节)。数据包头又详细划分为:HEAD(4字节)+源地址(8字节)+目标地址(8字节)+数据包类型(4字节)+数据包序列号(8字节)。使用私密协议通信,而不是采用Xml、Json、文本等明文格式直接传输,优势在于可以对数据区域扩展数据加密机制,起到数据保护的目的;数据采用字节流传输,在发送端和接收端可以采用统一的序列化、反序列化机制,有效提升性能。
采用上述分布式互联网信息采集系统进行信息采集的方法参见图3,
在步骤401中,任务调度模块依据优先级、定时策略加载采集任务脚本,该脚本包含任务下载部分和逻辑解析部分,然后进入步骤402;
在步骤402中,进行脚本运行环境初始化操作,分配CPU、内存等资源,然后执行步骤403;
在步骤403中,解释采集脚本;对于需要下载的部分,通过私密协议微服务框架,将脚本中需要下载的内容,按私密协议格式封装下载请求,依照轮询+权重匹配策略,最近的下载节点权值最大,若该节点繁忙,则下载请求转移至最接近的下一节点,依次类推分配下载请求任务至合适的下载节点,执行步骤404;
在步骤404中,解析下载请求,封装HTTP请求头(包括请求地址、请求方法、请求参数、Cookie等),使用下载节点网络资源发送请求,并获取返回结果,然后进步步骤405;
在步骤405中,对某一个下载节点的返回结果进行验证,如果返回出错信息,可以在本下载节点尝试5次重试(进入404),当获取结果正确或者超过5次依然无法获取正确结果时,进入步骤406;
在步骤406中,对从私密协议微服务框架返回结果进行验证,如果返回的是正确信息,进入步骤407解析返回结果;如果返回错误信息,则再次依据轮询+权重分配策略重新切换其他下载节点,进行尝试5次重新下载,进入步骤404;
在步骤407中,对下载结构进行解析,提取出关键信息,如网页的HTML标签解析、附件(doc、excel、pdf等)的内容提取等等;
在步骤408中,对解析提取结果进行统一存储。
本发明采用分布式设计,其中任务调度模块通过私密协议微服务框架,与部署在互联网的多个下载点建立连接,发起下载任务,然后将多个下载节点的获取的内容在微服务框架中进行组合得到所需采集的信息,使用多个下载节点可以提升下载速度,同时也可以解决部分网站限制IP访问次数的问题。
上面结合附图和实施例对本发明作了详细的说明,但是,所属技术领域的技术人员能够理解,在不脱离本发明宗旨的前提下,还可以对上述实施例中的各个具体参数、步骤进行同等替代或变更,形成多个具体的实施例,均为本发明的常见变化范围,在此不再一一详述。
Claims (9)
1.一种分布式互联网信息采集系统,其特征在于,包括采集脚本编制模块、任务调度模块、微服务框架、数据存储模块,所述采集脚本编制模块用于生成记载采集需求的采集脚本;所述任务调度模块用于调整所述采集脚本的执行顺序;所述微服务框架与所述任务调度模块互相通信,用于接收所述采集脚本并分配至不同的下载节点;所述数据存储模块用于存储所述下载节点传送的下载内容。
2.根据权利要求1所述的分布式互联网信息采集系统,其特征在于,所述微服务框架包括字节流协议,该协议格式包括数据包头、数据区域、CRC校验;所述数据包头包括HEAD、源地址、目标地址、数据包类型、数据包序列号。
3.根据权利要求1所述的分布式互联网信息采集系统,其特征在于,所述采集脚本包括资源下载单元和逻辑编制单元。
4.根据权利要求3所述的分布式互联网信息采集系统,其特征在于,所述逻辑编制单元包括登录信息、页面跳转信息、请求头设定信息。
5.根据权利要求1所述的分布式互联网信息采集系统,其特征在于,所述任务调度模块包括:
脚本加载单元,用于根据采集脚本的优先级确定脚本执行顺序;
逻辑执行单元,用于将所述采集脚本发送至虚拟机中编译并将所述资源下载单元通过所述微服务框架分配至下载节点; 结果处理单元,用于接收所述下载节点返回的下载数据。
6.根据权利要求5所述的分布式互联网信息采集系统,其特征在于,所述下载数据包括所述下载脚本中记载的下载内容以及是/否下载正确的信息。
7.一种采用权利要求1所述的分布式互联网信息采集系统进行信息采集的方法,其特征在于,包括以下步骤:
S1,将记载有待采集内容的采集脚本加载至任务调度模块;
S2,确定上述采集脚本的执行顺序,分配硬件资源;
S3,解析脚本内容,将需要下载的请求通过微服务框架发送至下载节点;
S4,所述下载节点解析下载请求,下载请求内容并将下载结果返回至所述微服务框架;
S5,所述微服务框架将所述下载结果返回至所述任务调度模块并将该结果存储于所述数据存储模块。
8.根据权利要求7所述的信息采集方法,其特征在于,步骤S4中若返回出错信息,则该下载节点重新下载。
9.根据权利要求8所述的信息采集方法,其特征在于,若重新下载设定次数后仍无法完成下载,则将错误结果传送至所述微服务框架,所述微服务框架根据所述错误结果重新切换下载节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910848301.2A CN110769026A (zh) | 2019-09-09 | 2019-09-09 | 分布式互联网信息采集系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910848301.2A CN110769026A (zh) | 2019-09-09 | 2019-09-09 | 分布式互联网信息采集系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110769026A true CN110769026A (zh) | 2020-02-07 |
Family
ID=69329607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910848301.2A Pending CN110769026A (zh) | 2019-09-09 | 2019-09-09 | 分布式互联网信息采集系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769026A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416448A (zh) * | 2020-12-08 | 2021-02-26 | 北京中亦安图科技股份有限公司 | 操作系统信息采集方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095408A (zh) * | 2016-05-31 | 2016-11-09 | 浙江网新恒天软件有限公司 | 一种数据监控和代码自动生成与部署的系统及方法 |
CN109347959A (zh) * | 2018-10-24 | 2019-02-15 | 九州能源有限公司 | 一种光伏电站移动监控系统 |
US20190138711A1 (en) * | 2016-07-04 | 2019-05-09 | Traffic Guard Dg Ltd | System and method for webpages scripts validation |
CN109815387A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院计算技术研究所 | 一种基于脚本的网页采集服务方法和系统 |
CN110018857A (zh) * | 2018-01-05 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 应用组件化中分支自动管理方法、存储介质、设备及方法 |
-
2019
- 2019-09-09 CN CN201910848301.2A patent/CN110769026A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095408A (zh) * | 2016-05-31 | 2016-11-09 | 浙江网新恒天软件有限公司 | 一种数据监控和代码自动生成与部署的系统及方法 |
US20190138711A1 (en) * | 2016-07-04 | 2019-05-09 | Traffic Guard Dg Ltd | System and method for webpages scripts validation |
CN110018857A (zh) * | 2018-01-05 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 应用组件化中分支自动管理方法、存储介质、设备及方法 |
CN109347959A (zh) * | 2018-10-24 | 2019-02-15 | 九州能源有限公司 | 一种光伏电站移动监控系统 |
CN109815387A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院计算技术研究所 | 一种基于脚本的网页采集服务方法和系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416448A (zh) * | 2020-12-08 | 2021-02-26 | 北京中亦安图科技股份有限公司 | 操作系统信息采集方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11843661B2 (en) | Web service system and method | |
CN112799789B (zh) | 一种节点集群管理方法、装置、设备及存储介质 | |
Bremler-Barr et al. | OpenBox: A software-defined framework for developing, deploying, and managing network functions | |
CN112104754B (zh) | 网络代理方法、系统、装置、设备及存储介质 | |
US9418052B2 (en) | Method and apparatus for web service schema management | |
JP2018536935A (ja) | アクセス要求変換方法および装置 | |
JP2022013649A (ja) | Dagインタラクションに基づくストリーミングコンピューティング方法及び装置 | |
US20080071922A1 (en) | Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment | |
JP2005539298A (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
US20030036897A1 (en) | Method and apparatus for simulating application workloads on an e-business application server | |
WO2011150645A1 (zh) | 网站托管服务调度方法、应用访问处理方法、装置及系统 | |
US20100235493A1 (en) | Extendable distributed network management system and method | |
CN112286698A (zh) | 远程过程调用方法、装置以及远程过程调用执行方法 | |
CN105183470A (zh) | 一种自然语言处理系统化服务平台 | |
CN116069608A (zh) | 一种应用调用链路追踪方法、装置及分布式系统 | |
CN102497436A (zh) | 一种基于http协议的网络文件存储方法及系统 | |
CN113179269B (zh) | 基于物联网的协议数据解析方法、系统、介质 | |
CN110769026A (zh) | 分布式互联网信息采集系统及方法 | |
CN103561113B (zh) | Web Service接口的生成方法及装置 | |
CN115834665B (zh) | 一种网络通信方法和装置 | |
CN113535419A (zh) | 一种服务编排方法和装置 | |
Kang et al. | Android RMI: a user-level remote method invocation mechanism between Android devices | |
Dimitriou et al. | Sensenet: a wireless sensor network testbed | |
CN114928562B (zh) | 一种图计算平台的流量处理方法和系统 | |
CN102594587B (zh) | 嵌入式web调测维护方法及调测维护系统 |
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: 20200207 |