一种数据爬取的方法及系统与流程

文档序号:32215930发布日期:2022-11-16 07:33阅读:101来源:国知局
一种数据爬取的方法及系统与流程

1.本发明涉及网络测试技术领域,具体涉及一种数据爬取的方法及系统。


背景技术:

2.在网络测试技术领域,在获取网络数据时,经常会用到抓包工具。
3.抓包工具是拦截查看网络数据包内容的软件;抓包工具由于其可以对数据通信过程中的所有lp报文实施捕获并进行逐层拆包分析,一直是传统固网数通维护工作中惯常用的故障排查工具,业内流行的抓包软件有很多:wireshark、snifferpro、snoop以及tcpdump等;各抓包软件除了在操作界面、应用平台稍有差别外,其他功能大致相似。
4.现有的抓包工具,在爬取数据的过程中,需要多次配置,比较繁琐;在导出数据时,能够选择的模板类型较少,导出的数据格式单一,不能满足复杂场景的需求。


技术实现要素:

5.本发明的目的在于提供一种数据爬取的方法及系统,解决现有数据爬取工具配置繁琐且导出数据格式单一的问题。
6.根据本发明实施例的第一方面,提供一种数据爬取的方法,应用于,包括:
7.配置数据爬取参数,所述数据爬取参数包括多个url地址、爬取数据的提取方式;
8.获取数据爬取参数;
9.根据数据爬取参数中的url地址,查询url地址对应的数据爬取权限,获得查询结果;
10.对查询结果进行判断,若存在url地址具有数据爬取权限,则进行下一步操作,若所有url地址都不具有数据爬取权限,则结束所有操作;
11.从具有数据爬取权限的url地址上爬取数据,获得初始数据;
12.对初始数据进行第一次判断,若初始数据与爬取数据的提取方式匹配,则将初始数据存入数据库,若初始数据与爬取数据的提取方式不匹配,则将初始数据丢弃;
13.对存入数据库的初始数据进行分类汇总,形成汇总表数据,并保存到数据库;
14.将汇总表数据按照选择的模板导出。
15.优选地,所述数据爬取的方法,还包括:
16.对初始数据进行第一次判断之后,对初始数据进行第二次判断,若需要对初始数据进行深入解析,则根据初始数据中的二次url地址再次爬取数据,若不需要对初始数据进行深入解析,则进行下一步操作。
17.优选地,
18.所述数据爬取参数还包括:是否多级获取;
19.所述配置数据爬取参数,在这个过程中,还去校验必填参数是否为空,如果必填参数为空,则结束所有操作;
20.必填参数包括url地址。
21.优选地,所述获取数据爬取参数,包括:返回结果为html时,支持xpath语句和正则表达式语句;
22.返回结果为json语句时,支持json提取。
23.优选地,所述查询url地址对应的数据爬取权限,具体为:
24.在robots.txt文档中查询url地址对应的数据爬取权限。
25.优选地,所述若存在url地址具有数据爬取权限,具体为:
26.所有url地址都具有数据爬取权限;
27.部分url地址具有数据爬取权限。
28.根据本发明实施例的第二方面,提供一种数据爬取的系统,包括:
29.配置模块,配置数据爬取参数,所述数据爬取参数包括多个url地址、爬取数据的提取方式;
30.获取模块,获取数据爬取参数;
31.查询模块,根据数据爬取参数中的url地址,查询url地址对应的数据爬取权限,获得查询结果;
32.权限判断模块,对查询结果进行判断,若存在url地址具有数据爬取权限,则进行下一步操作,若所有url地址都不具有数据爬取权限,则结束所有操作;
33.爬取模块,从具有数据爬取权限的url地址上爬取数据,获得初始数据;
34.第一判断模块,对初始数据进行第一次判断,若初始数据与爬取数据的提取方式匹配,则将初始数据存入数据库,若初始数据与爬取数据的提取方式不匹配,则将初始数据丢弃;
35.汇总模块,对存入数据库的初始数据进行分类汇总,形成汇总表数据,并保存到数据库;
36.导出模块,将汇总表数据按照选择的模板导出。
37.优选地,所述数据爬取的系统,还包括:
38.第二判断模块,在第一判断模块对初始数据进行第一次判断之后,第二判断模块对初始数据进行第二次判断,若需要对初始数据进行深入解析,则根据初始数据中的二次url地址再次爬取数据,若不需要对初始数据进行深入解析,则进行下一步操作。
39.本发明的实施例提供的技术方案可以包括以下有益效果:
40.通过配置数据爬取参数,进而查询url地址的数据爬取权限,最终获得初始数据;将与提取方式匹配的初始数据存入数据库,分类汇总后按照选择的模板导出;当需要爬取多个url上的数据时,只需配置一次数据爬取参数,简化了配置流程;当需要导出数据时,可以在多个模板中选择用户所需模板,从而导出用户所需格式的数据;解决了现有数据爬取工具配置繁琐且导出数据格式单一的问题。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
43.图1是根据一示例性实施例示出的一种数据爬取的方法的示意流程图;
44.图2是根据另一示例性实施例示出的一种数据爬取的方法的示意流程图;
45.图3是根据一示例性实施例示出的一种数据爬取的系统的示意框图。
具体实施方式
46.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
47.图1是根据一示例性实施例示出的一种数据爬取的方法的示意流程图,如图1所示,该方法包括:
48.配置数据爬取参数,所述数据爬取参数包括多个url地址、爬取数据的提取方式;
49.获取数据爬取参数;
50.根据数据爬取参数中的url地址,查询url地址对应的数据爬取权限,获得查询结果;
51.对查询结果进行判断,若存在url地址具有数据爬取权限,则进行下一步操作,若所有url地址都不具有数据爬取权限,则结束所有操作;
52.从具有数据爬取权限的url地址上爬取数据,获得初始数据;
53.对初始数据进行第一次判断,若初始数据与爬取数据的提取方式匹配,则将初始数据存入数据库,若初始数据与爬取数据的提取方式不匹配,则将初始数据丢弃;
54.对存入数据库的初始数据进行分类汇总,形成汇总表数据,并保存到数据库;
55.将汇总表数据按照选择的模板导出。
56.可以理解的是,当需要爬取多个url上的数据时,只需配置一次数据爬取参数,简化了配置流程;当需要导出数据时,可以在多个模板中选择用户所需模板,从而导出用户所需格式的数据;本实施例解决了现有数据爬取工具配置繁琐且导出数据格式单一的问题。
57.初始数据中是否包含二次url地址,是否需要再次爬取数据,这就需要对初始数据进行深入解析。
58.在具体实践中,所述数据爬取的方法,还包括:
59.对初始数据进行第一次判断之后,对初始数据进行第二次判断,若需要对初始数据进行深入解析,则根据初始数据中的二次url地址再次爬取数据,若不需要对初始数据进行深入解析,则进行下一步操作。
60.需要说明的是,根据初始数据中的二次url地址再次爬取数据,是从查询该地址对应的数据爬取权限开始的,之后还会经历对查询结果进行判断、从具有数据爬取权限的url地址上爬取数据、对初始数据进行第一次判断等过程。
61.在配置数据爬取参数的过程中,需要对数据爬取参数进行校验。
62.在具体实践中,
63.所述数据爬取参数还包括:数据提取表达式、是否多级获取;
64.所述配置数据爬取参数,在这个过程中,还去校验必填参数是否为空,如果必填参数为空,则结束所有操作;
65.必填参数包括url地址。
66.需要说明的是,url(uniform resource locator,统一资源定位符)是因特网的万维网服务程序上用于指定信息位置的表示方法。
67.需要说明的是,必填参数中还包括数据提取表达式;是否多级获取的含义是,是否需要多次爬取数据。
68.获取数据爬取参数,不同的返回结果,支持不同的提取方式。
69.在具体实践中,所述获取数据爬取参数,包括:返回结果为html时,支持xpath语句和正则表达式语句;
70.返回结果为json语句时,支持json提取。
71.需要说明的是,xpath语句的一个样例为:title[@*],它的含义为选取所有带有属性的title元素。
[0072]
需要说明的是,json提取的一个样例为:response.code,它的含义为提取返回编码。
[0073]
一个url地址是否可以爬取数据,需要查询该地址所对应的数据爬取权限。
[0074]
在具体实践中,所述查询url地址对应的数据爬取权限,具体为:
[0075]
在robots.txt文档中查询url地址对应的数据爬取权限。
[0076]
需要说明的是,url地址对应的数据爬取权限的含义是:该url地址所指向的网站上的数据所能够被爬取的范围。
[0077]
需要说明的是,robots.txt文档包含多个url地址的数据爬取权限,各个url地址的数据爬取权限,都可以从该文档中获得。
[0078]
url地址具有数据爬取权限分为不同的情况。
[0079]
在具体实践中,所述若存在url地址具有数据爬取权限,具体为:
[0080]
所有url地址都具有数据爬取权限;
[0081]
部分url地址具有数据爬取权限。
[0082]
需要说明的是,数据爬取权限分为所有权限和部分权限,所有权限的含义是该url地址所指向的网站上的所有数据都能够被爬取;部分权限的含义是该url地址所指向的网站上的部分数据能够被爬取。
[0083]
图2是根据另一示例性实施例示出的一种数据爬取的方法的示意流程图,如图2所示,该方法包括:
[0084]
第一步,在配置中心配置需要获取的url地址,爬取数据的提取方式,是否多级获取等;
[0085]
第二步,程序开始运行,拉取到配置中心的配置信息。
[0086]
第三步,获取爬虫协议,在获取到的url后拼接地址"/robots.txt",获取该url的数据获取权限;
[0087]
第四步,权限判断,符合要求则获取url信息,不符合则结束运行;
[0088]
第五步,调用url并获取返回信息,将获取的返回值保存;
[0089]
第六步,满足配置判断,返回数据依次匹配配置信息的数据提取方式,满足则根据要求,数据入库保存,并进行下一步操作;不满足,则直接丢弃;
[0090]
第七步,深入解析判断,如果需要进行深入解析,则从第五步开始执行;如果不需
要,则进行下一步操作;
[0091]
第八步,数据操作,根据配置信息的规则,对数据库的入库数据进行分类汇总;
[0092]
第九步,模板导出,在模板中心选择模板导出数据。
[0093]
需要说明的是,在第一步中,还去校验必填参数是否为空(如:url为空,数据提取表达式为空等),如必填参数为空,则直接结束运行;
[0094]
在第二步中,返回结果为html时,支持xpath语句(如://title[@*]选取所有带有属性的title元素)和正则表达式语句,返回结果为json语句时,支持json提取(如:提取返回编码,可以写为response.code);
[0095]
在第三步中,robots.txt中存储有所有待访问的url地址的数据获取权限;
[0096]
在第四步中,符合要求的含义是,当系统无返回时,默认全部允许,进行下一步操作;当有返回时,根据操作权限获取允许范围内的数据,进行下一步操作;不符合的含义是,所有的url都没有权限时,则直接结束运行;
[0097]
在第六步中,返回数据依次匹配配置信息的数据提取方式,数据提取方式可能有多个;
[0098]
在第七步中,需要深入解析的含义是返回的内容包含有url地址时,并且需要再次获取数据;
[0099]
在第八步中,对数据库的入库数据进行分类汇总后,形成汇总表数据,并保存到数据库。
[0100]
本实施例提供的数据爬取的方法,只需要一次配置,简化了配置过程;在导出数据时,模板中心可以提供多个可选择的模板,能够导出多种格式的数据,满足了复杂场景下的使用需求。
[0101]
图3是根据一示例性实施例示出的一种数据爬取的系统300的示意框图,如图3所示,该系统包括:
[0102]
配置模块301,配置数据爬取参数,所述数据爬取参数包括多个url地址、爬取数据的提取方式;
[0103]
获取模块302,获取数据爬取参数;
[0104]
查询模块303,根据数据爬取参数中的url地址,查询url地址对应的数据爬取权限,获得查询结果;
[0105]
权限判断模块304,对查询结果进行判断,若存在url地址具有数据爬取权限,则进行下一步操作,若所有url地址都不具有数据爬取权限,则结束所有操作;
[0106]
爬取模块305,从具有数据爬取权限的url地址上爬取数据,获得初始数据;
[0107]
第一判断模块306,对初始数据进行第一次判断,若初始数据与爬取数据的提取方式匹配,则将初始数据存入数据库,若初始数据与爬取数据的提取方式不匹配,则将初始数据丢弃;
[0108]
汇总模块307,对存入数据库的初始数据进行分类汇总,形成汇总表数据,并保存到数据库;
[0109]
导出模块308,将汇总表数据按照选择的模板导出。
[0110]
通过配置模块配置数据爬取参数,进而通过查询模块查询url地址的数据爬取权限,最终通过爬取模块获得初始数据;通过第一判断模块将与提取方式匹配的初始数据存
入数据库,通过导出模块将分类汇总后的数据按照选择的模板导出;当需要爬取多个url上的数据时,只需配置一次数据爬取参数,简化了配置流程;当需要导出数据时,可以在多个模板中选择用户所需模板,从而导出用户所需格式的数据;解决了现有数据爬取工具配置繁琐且导出数据格式单一的问题。
[0111]
初始数据中是否包含二次url地址,是否需要再次爬取数据,这就需要第二判断模块来判断是否需要对初始数据进行深入解析。
[0112]
在具体实践中,所述数据爬取系统,还包括:
[0113]
第二判断模块,在第一判断模块对初始数据进行第一次判断之后,第二判断模块对初始数据进行第二次判断,若需要对初始数据进行深入解析,则根据初始数据中的二次url地址再次爬取数据,若不需要对初始数据进行深入解析,则进行下一步操作。
[0114]
需要说明的是,根据初始数据中的二次url地址再次爬取数据,是从查询该地址对应的数据爬取权限开始的,之后还会使用权限判断模块对查询结果进行判断、使用爬取模块从具有数据爬取权限的url地址上爬取数据、使用第一判断模块对初始数据进行第一次判断等过程。
[0115]
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
[0116]
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
[0117]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0118]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0119]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0120]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0121]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0122]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例
性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1