网络数据采集系统的制作方法

文档序号:27246267发布日期:2021-11-03 19:55阅读:292来源:国知局
网络数据采集系统的制作方法

1.本发明涉及数据采集技术领域,尤其涉及一种网络数据采集系统。


背景技术:

2.现有技术在采集网络数据时,采用的步骤通常为确定url(uniform resource locator,统一资源定位符)、请求头信息,网络请求,提取,存储等,当涉及多个数据采集业务时,需要重复执行上述步骤。一个业务需求对应一个数据采集程序,当构建多个数据采集,随着业务量增加,数据采集程序也不断增加,面对多个数据采集程序,不但会增加工作人员对程序的维护成本和开发成本,也会导致程序杂乱,重复开发、数据采集效率低等问题。由此可知,如何降低网络数据采集的开发成本,提高网络数据采集效率,成为亟待解决的技术问题。


技术实现要素:

3.本发明目的在于,提供一种网络数据采集系统,能够适用于多个业务场景的数据采集,减少网络数据采集的开发和维护成本,提高网络数据采集的效率。
4.根据本发明一方面,提供了一种网络数据采集系统,包括预先配置的动态参数数据结构和请求处理数据结构,存储有计算机程序的存储器和处理器,所述动态参数数据结构和请求处理数据结构均为字符串数据结构,所述动态参数数据结构包括url参数数据段、请求方式数据段和至少一个请求参数数据段,所述url参数数据段、请求方式数据段和请求体参数数据段之间采用预设的第一分隔符分隔,不同请求体参数数据段之间通过预设的第二分隔符分隔,所述第一分隔符和第二分隔符不同;所述请求处理数据结构包括请求处理函数数据段、请求主体数据段和动态参数数据段,所述请求处理函数和所述请求主体数据段之间采用预设的第三分隔符分隔,请求主体数据段和动态参数数据段采用预设的第四分隔符分隔,所述第三分隔符和第四分隔符不同;所述处理器在执行所述计算机程序时,实现以下步骤:步骤s1、获取网络数据采集任务对应的url参数、请求方式和请求参数,根据所述动态参数数据结构生成任务动态参数数据体,存入所述请求处理数据结构中的动态参数数据段中;步骤s2、调用所述请求处理数据结构中的请求处理函数,从所述任务动态参数数据体中获取动态参数数据填入所述请求主体数据段中生成任务请求主体;步骤s3、基于所述任务请求主体采集目标网络数据。
5.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种网络数据采集系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:本发明所述系统通过设置的字符串形式的动态参数数据结构和请求处理数据结构,将复杂的逻辑代码转换为简短的请求语句表达,来采集动态参数和构建任务请求主体
进行网络数据采集,能够适用于多个业务场景的数据采集,减少网络数据采集的开发和维护成本,提高网络数据采集的效率。
6.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
7.图1为本发明实施例提供的网络数据采集系统示意图。
具体实施方式
8.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种网络数据采集系统的具体实施方式及其功效,详细说明如后。
9.本发明实施例提供了一种网络数据采集系统,包括预先配置的动态参数数据结构和请求处理数据结构,存储有计算机程序的存储器和处理器,所述动态参数数据结构和请求处理数据结构均为字符串数据结构。所述动态参数数据结构包括url参数数据段、请求方式数据段和至少一个请求参数数据段,所述url参数数据段、请求方式数据段和请求体参数数据段之间采用预设的第一分隔符分隔,不同请求体参数数据段之间通过预设的第二分隔符分隔,所述第一分隔符和第二分隔符不同。所述请求处理数据结构包括请求处理函数数据段、请求主体数据段和动态参数数据段,所述请求处理函数和所述请求主体数据段之间采用预设的第三分隔符分隔,请求主体数据段和动态参数数据段采用预设的第四分隔符分隔。需要说明的是,分隔符具体可以为双斜杠、单斜杠等,本发明词不做限定,通过在数据结构中设置不同的分隔符分隔不同的参数,便于字符串表达式的参数提取和执行。
10.所述处理器在执行所述计算机程序时,实现以下步骤:步骤s1、获取网络数据采集任务对应的url参数、请求方式和请求参数,根据所述动态参数数据结构生成任务动态参数数据体,存入所述请求处理数据结构中的动态参数数据段中;可以理解的是,每一网络数据采集任务对应一个动态参数数据结构和请求处理数据结构。
11.步骤s2、调用所述请求处理数据结构中的请求处理函数,从所述任务动态参数数据体中获取动态参数数据填入所述请求主体数据段中生成任务请求主体;步骤s3、基于所述任务请求主体采集目标网络数据。
12.作为一种实施例,所述系统还包括预先构建的用于破解加密参数的解密接口,所述解密接口具体可以设置为基于flask框架搭建的flask接口,flask是一个现有技术中使用 python 编写的轻量级 web 应用框架,采用现有技术基于该应用框架可以构建所述flask接口,具体构建过程在此不再赘述。通过配置flask接口进行参数处理,可以根据不同的数据采集需求进行配置,调用参数的时候不需要特别记忆变量名或字段名,提高了请求主体的灵活性和程序的可复用性。所述步骤s1包括:步骤s11、若所述网络数据采集任务的url链接为固定链接,则直接将url链接字符
串确定为对应的url参数,并填入所述url参数数据段中;若url链接为需要url关键词拼接链接,则获取网络数据采集任务对应的url关键词,并将获取的url关键词进行拼接,并采用预设的第五分隔符进行分隔,生成对应的url参数,并填入所述url参数数据段中;其中,当获取的url关键词进行拼接时,还可先对url关键词进行压缩处理后再进行拼接。
13.步骤s12、若所述网络数据采集任务为get(获取)任务,则将所述请求方式数据段配置为get,若所述网络数据采集任务为post(表单)请求,则将所述请求方式数据段配置为post;步骤s13、获取网络数据采集任务的请求头,若所述请求头中包括请求头加密参数,则调用所述解密接口进行解密,生成请求头参数,并填入所述请求体参数数据段;若所述请求方式数据段配置为post,则获取网络数据采集任务的表单数据,若所述表单数据中包括表单加密数据,则调用所述解密接口进行解密,生成表单参数,并填入所述请求体参数数据段,生成所述任务动态参数数据体。
14.需要说明的是,步骤s11

步骤s13可以顺序执行,也可以交换顺序执行,也可以并行执行。其中,请求头中的加密参数具体可为经过js加密的cookies参数,表单数据中也可能存在经过js加密的加密表单,这些加密参数均需解密接口进行解密后再进行动态参数配置。作为示例,通过步骤s11

步骤s13得到的任务动态参数数据体为<https://www.xxx.com@get@headers:{...}&data:{...}>字符串表达式,@为第一分隔符,&为第二分隔符。
15.请求处理数据结构的字符串表达式具体可为<requestfunction://request.url/param.url>,其中,requestfunction是数据采集程序的处理函数,包含的是程序的执行路径,形如generalspider.requestfunction.deal,是处理函数的路径,包含工程名.类名.方法名。://为第三分隔符,request.url为请求主体,param.url为动态参数,通过调用请求处理数据结构中的requestfunction处理函数将动态参数填入到request.url中,动态参数与多个时,可以使用分号分隔。
16.作为一种实施例,所述请求主体数据段包括url位置,数据头位置,表单数据位置,所述步骤s2包括:步骤s21、调用所述请求处理数据结构中的请求处理函数,根据从所述任务动态参数数据体中的请求方式确定目标数据位置,从所述任务动态参数数据体中获取动态参数数据填入所述请求主体中对应的目标数据位置,或替换所述目标数据位置中的信息,生成任务请求主体。
17.所述请求处理数据结构为字符串表达式,通过该字符串表达式将动态参数和请求主体进行结合,把复杂的逻辑代码转变为简短的语句表达,根据配置的表达式规则,将请求的动态参数填入、替换到请求主体中对应的目标数据位置的请求块中,构建成完整的任务请求主体。使用字符串表达式的优点在于,当业务种类多,请求量大时,有些空闲低频的数据采集程序仍然占据着服务器资源,造成资源浪费,也不适合做负载均衡,因此本发明所述系统通过统一的程序调用表达式可以让多个数据采集业务共用一套程序,极大的减少资源占用,如果使用队列,还能根据队列积压来判断是否激活备用节点等。
18.需要说明的是,所述请求处理数据结构中的请求主体中预先配置了固定参数,可
以复用,例如请求头中的user

agent(用户代理),从而减少动态参数字符串表达式长度。步骤s2中将可变的动态参数与固定参数进行结合生成任务请求主体。
19.作为一种实施例,所述系统还包括预先配置的响应处理数据结构,所述响应处理数据结构为字符串数据结构,包括数据解析函数数据段和解析路径数据段,所述数据解析函数数据段和解析路径数据段之间采用预设的第六分隔符分隔,所述数据解析函数数据段中的数据预先配置数据解析函数,当所述网络数据采集任务包括单个请求时,所述步骤s3包括:步骤s31、基于所述任务请求主体确定任务解析路径数据,存储在所述解析路径数据段中;步骤s32、调用数据解析函数数据段中对应的数据解析函数对所述任务解析路径数据进行解析,生成所述目标网络数据。
20.其中,所述数据解析函数具体可设置为xpath解析函数re正则函数、beautiful soup函数等。上述函数均为现有函数或现有应用框架构建的函数,具体构建过程在此不再赘述。
21.当所述网络数据采集任务包括单个请求时,可以直接采用步骤s31

步骤s32来获取目标网络数据,当所述网络数据采集任务为连续采集请求时,需要将当前解析数据作为下一条请求的参数,经过多条请求才能获得最终的目标网络数据,多条连续的请求构成一条请求链,针对此类应用场景,所述响应处理数据结构还包括响应处理函数路径数据段和临时缓存标识数据段,所述响应处理函数路径数据段预先配置响应处理函数路径,当所述网络数据采集任务包括m个请求{r1,r2,

r
m
}时,r
m
为第m个请求,m的取值为1到m,m为大于等于2的整数,r
m
对应的任务请求体为s
m
,所述步骤s2生成的任务请求体为r1,所述步骤s3包括:步骤s301、初始化m=1,为所述网络数据采集任务创建对应的临时缓存容器,并将对应的临时缓存容器标识存入所述临时缓存标识数据段;其中,所述临时缓存容器用于将解析结果构建临时缓存,向下传递或进行存储。可以理解的是,每一所述网络数据采集任务对应一个响应处理数据结构,步骤s301中将对应的临时缓存容器标识存入所述网络数据采集任务对应的响应处理数据结构中的临时缓存标识数据段。
22.步骤s302、基于r
m
确定第m任务解析路径数据,更新至所述解析路径数据段中;需要说明的是,若当前所述解析路径数据段为空,则直接将第m任务解析路径数据存入即可,若不为空,则需要将所述解析路径数据段中当前存储的数据删除后再将第m任务解析路径数据存入。
23.步骤s303、调用数据解析函数数据段中对应的数据解析函数对所述任务解析路径数据进行解析,生成第m解析结果,调用所述响应处理函数路径对应的响应处理函数将所述第m解析结果存储至所述临时缓存标识对应的临时缓存容器中;步骤s304、若满足m小于m,且所述第m解析结果不满足预设的采集结束条件,则基于第m解析结果和r
m
生成r
m+1
,设置m=m+1,返回执行步骤s302,否则,基于所述临时缓存容器中存储的数据生成所述目标网络数据。
24.作为示例,所述响应处理数据结构具体设置为
表达式,responsefunction表示处理函数的路径,用于调用响应处理函数将解析结果存入临时缓存器中,meta.key表示临时缓存容器标识,, text为变量名称,xpath为解析函数,(//*title/text())为xpath解析的具体路径,为分隔符。
25.需要说明的是,目标网络数据可以为第m解析结果,也可以为第m解析结果以及中间请求对应的解析结果,可以基于具体的应用场景来配置目标数据生成条件。
26.作为一种实施例,所述步骤s3还包括步骤s305、生成所述目标网络数据后,清空并删除所述临时缓存容器。所述系统还包括全局缓存,所述全局缓存用于在所述系统运行过程中存储全局参数,所述全局参数包括存活状态、深度和总请求量。需要说明的是,全局共享在所述系统依运行的整个过程中尽可以使用,临时缓存是在当前网络数据采集任务执行过程中使用。
27.作为一种实施例,所述步骤s3之后还包括:步骤s4、将所述目标网络数据进行存储,包括将所述目标网络数据按照预设的文件格式存储至本地文件中,具体可采用json、文本等形式,或者,将所述目标网络数据转发存储至预设的队列服务器中,供后续数据分析或其他操作,或者,将所述目标网络数据存储至预设的数据库中,供其他应用程序调用。
28.本发明实施例所述系统通过设置的字符串形式的动态参数数据结构和请求处理数据结构,将复杂的逻辑代码转换为简短的请求语句表达,来采集动态参数和构建任务请求主体进行网络数据采集,能够适用于多个业务场景的数据采集,减少网络数据采集的开发和维护成本,提高网络数据采集的效率。本发明实施例所述系统具体可用于普通数据采集,普通有参数据采集,需要连续请求的普通数据采集,需要连续请求的有参普通数据采集,垂直数据采集,垂直有参数据采集,需要连续请求的垂直数据采集,需要连续请求的有参垂直数据采集等网络数据采集场景。
29.需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
30.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1