一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据采集方法、装置、电子设备及存储介质与流程

2022-11-28 12:46:07 来源:中国专利 TAG:


1.本发明涉及计算机处理技术领域,尤其涉及一种数据采集方法、装置、电子设备及存储介质。


背景技术:

2.随着大数据时代的到来,互联网上的信息也随之越来越丰富,具有很大的实用价值,于是批量采集互联网数据的方式也越来越多,但是由于网页数据存在复杂性和多样性的特点,同时数据供应方还设置了大量的数据访问验证,如验证码识别等,因此存在数据采集困难的问题。
3.现有的数据采集方法,通常是采用限制网页访问频率的方式进行数据采集,例如,当在某个网站上采集数据达到一定的时间阈值时,退出该网站,但是该方法难以解决数据采集困难的问题,存在采集效率低、采集不全面的问题。


技术实现要素:

4.本发明提供了一种数据采集方法、装置、电子设备及存储介质,以实现提高数据采集的便捷性和全面性,有效解决数据采集困难的问题。
5.根据本发明的一方面,提供了一种数据采集方法,该方法包括:
6.当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息;
7.确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;
8.基于所述页面类型以及与所述页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,所述采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;
9.基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数据。
10.根据本发明的另一方面,提供了一种数据采集装置,该装置包括:
11.资源定位信息确定模块,用于当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息;
12.页面类型确定模块,用于确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;
13.页面数据确定模块,用于基于所述页面类型以及与所述页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,所述采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;
14.目标数据确定模块,用于基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数据。
15.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
16.至少一个处理器;以及
17.与所述至少一个处理器通信连接的存储器;其中,
18.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据采集方法。
19.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据采集方法。
20.本发明实施例的技术方案,通过在接收到数据采集请求时,确定数据采集请求对应的至少一个资源定位信息;确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;基于各子页面所对应的页面数据,确定与待采集页面相对应的目标数据,解决了现有技术中通过限制网页访问频率的方式,导致采集效率低不全面的问题,实现了通过确定采集页面对应的页面类型,基于与页面类型相对应的资源定位跳转方式、存储位置更换方式和协议地址更换方式等采集处理方式,获取页面所对应的页面数据,提高数据采集的便捷性和全面性,有效解决数据采集困难的问题。
21.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是根据本发明实施例一提供的一种数据采集方法的流程图;
24.图2是根据本发明实施例二提供的一种数据采集方法的流程图;
25.图3是根据本发明实施例三提供的一种数据采集方法的流程图;
26.图4是根据本发明实施例四提供的一种数据采集方法的流程图;
27.图5是根据本发明实施例五提供的一种数据采集方法示意图;
28.图6是根据本发明实施例六提供的一种数据采集装置的结构示意图;
29.图7是实现本发明实施例的数据采集方法的电子设备的结构示意图。
具体实施方式
30.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
31.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
32.实施例一
33.图1是根据本发明实施例一提供的一种数据采集方法的流程图,本实施例可适用于数据采集的情况,该方法可以由数据采集装置来执行,该数据采集装置可以采用硬件和/或软件的形式实现,该数据采集装置可配置于计算设备中。如图1所示,该方法包括:
34.s110、当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息。
35.其中,数据采集请求可以是获取数据的指令或代码等,用于请求获取数据,如,可以根据用户所需采集数据的类型,生成相应的数据采集请求,以基于数据采集请求获取满足用户需求的数据。资源定位信息可以是url(uniform resource locator,统一资源定位符),用于指定资源信息位置的网络地址。
36.在实际应用中,可以当检测到上传的网页网址时,认为接收到了数据采集请求,可以对数据采集请求进行解析,得到数据采集请求上所携带的至少一个网址信息,作为资源定位信息。也可以当检测到上传的所需采集的数据类型,认为接收到了数据采集请求,此时可以自动确定至少一个与该数据类型相对应的网址信息,作为资源定位信息,资源定位信息中的网页内容是与该数据类型相对应的,网址信息可以为预先存储在预设位置的,也可以是在网络上采集的。以使基于资源定位信息定位到相应网页进行后续的数据采集。
37.s120、确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型。
38.其中,待采集页面可以理解为需要被采集其页面数据的页面,待采集页面中可能包含各种页面类型的子页面,如页面类型可以包括内滚动类型、外滚动类型和翻页切换类型。内滚动页面一般是外滚动页面的一部分,比如正常页面里面有一个可以滚动的容器,那么内滚动页面在滚动时,不会触发外滚动页面滚动,只有在滚动到顶部或者底部的时候,才会触发外滚动页面滚动。翻页切换类型可以理解为具有分页切换的页面,翻页切换页面一般是外滚动页面的一部分,翻页切换页面中可能存在多个页面,每次展示可展示一页,可通过左右切换实现页面之间的切换,在切换时,不会触发外滚动页面滚动。采集每个资源定位信息中页面数据的方式均相同,以其中任一资源定位信息作为当前资源定位信息进行说明。
39.需要说明的是,互联网上的网页是由计算机语言编译而成的,可以理解的是,网页的页面类型在编译时是预先确定了的,不同页面类型的页面所对应的编译语言是不同的。每个网页可以由html(超文本标记语言)和css(cascading style sheets)构成。html包括一系列标签,通过这些标签可以将网络上的文档格式进行统一,使分散的internet资源连接为一个逻辑整体。html文本是由html命令组成的描述性文本,html命令可以说明文字,图
形、动画、声音、表格、链接等。css是一种用来表现html或xml等文件样式的计算机语言,css不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
40.在实际应用中,在进入当前资源定位信息的网页页面即待采集页面之后,可以通过检查待采集页面中各子页面的页面格式,基于页面格式确定其相应的页面类型。
41.可选的,确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型的方式可以是:跳转至与当前资源定位信息相对应的待采集页面;对于待采集页面中各子页面,当采集当前子页面的页面数据时,确定当前子页面的页面格式,并基于页面格式,确定与当前子页面相对应的页面类型。
42.在本实施例中,在获取到资源定位信息之后,可以跳转至该资源定位信息相对应的待采集页面,从待采集页面中从上到下进行采集,在采集待采集页面的页面数据时,需要确定所采集的当前子页面是哪种页面类型,此时可以通过对当前子页面所对应的程序代码进行解析,确定当前子页面的页面格式,基于页面格式,确定当前子页面所对应的当前子页面。
43.在上述方案的基础上,在将资源定位信息导入时,还可以将相应数据采集工具包导入,以使基于数据采集工具包进行数据解析和提取。例如,数据采集工具包可以为beautifulsoup,beautifulsoup是一个基于re开发的解析库,用于从html或xml文件中提取数据,还具有强大的解析功能,可以通过转换器实现惯用的文档导航、查找、修改文档的效果,提高提取数据的效率与爬虫开发效率。
44.s130、基于所述页面类型以及与所述页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据。
45.需要说明的是,不同页面类型的页面所对应的采集方式可能是不同的,也可能是相同的。例如,翻页切换类型页面需要左右切换页面实现数据采集,内滚动页面和外滚动页面则不需要;每种页面类型的页面可能都需要进行数据存储,数据存储的方式又可能是相同的。为了提高数据采集的全面性、准确性以及便捷性,可以对不同页面类型的页面执行相应的采集方式。
46.其中,采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式。资源定位跳转方式可以理解为如何有效的进行资源定位跳转,防止出现网页归属方在检测到存在对同一网页进行长时间的数据采集,对数据采集方进行采集限制的情况。存储位置更换方式可以理解为如何合理的进行存储位置更换,防止出现网页归属方在检测到存在将大量网页数据采集至同一存储位置,对数据采集方进行采集限制的情况。协议地址更换方式可以理解为如何合理、有效的进行客户端的协议地址更换,防止出现网页归属方在检测到存在某一协议地址长时间多频次的进行数据采集,对数据采集方进行采集限制的情况。
47.在实际应用中,可以对不同页面类型的子页面执行与之相对应的采集处理方式,获取待子页面的页面数据。下面对为内滚动类型、外滚动类型和翻页切换类型的页面进行数据采集的实现方式进行分别叙述:
48.可选的,若页面类型为内滚动类型,则确定与内滚动类型相对应的滚动属性;基于当前滚动周期和滚动位移量,确定当前窗口页面,并获取当前窗口页面所对应的至少一个待使用标签和相应的标签内容;基于各窗口页面所对应的至少一个待使用标签和相应的标
签内容,确定相应子页面的页面数据。
49.其中,滚动属性中包括滚动周期和滚动位移量,还包括等待滚动时长。滚动位移量可以理解为每次滚动的位移量。滚动属性可以由技术人员根据实际工作情况进行限定。待使用标签可以为网页《body》
……
《/body》内的标签。
50.需要说明的是,获取内滚动类型的页面数据时,只有在停留一段时间之后,网页才会加载出数据。针对此种情况,可以通过模拟用户进行界面下滑来加载动态的数据标签。
51.在实际应用中,当检测到子页面的页面类型为内滚动类型时,可以利用组件工具中的滚动周期和滚动位移量,定时滚动到页面中的某个坐标,此时将加载出来的页面作为当前窗口页面,提取当前窗口页面所对应的页面数据,页面数据中包括至少一个待使用标签和相应的标签内容。例如,可以利用window.scrollto(参数1,参数2,

)实现模拟用户进行界面下滑来加载动态的数据标签,当将内滚动类型页面的滚动条拉到最下面时,认为数据采集完成,可以继续从与内滚动类型页面对应的外滚动类型页面中滚动采集数据。
52.可选的,若页面类型为外滚动类型,则在相应子页面中滚动条滚动至相应子页面最底端的过程中,获取至少一个待应用标签和相应的标签内容;基于各待应用标签和相应的标签内容,确定相应子页面的页面数据。
53.需要说明的是,在外滚动类型页面中,当页面上的元素超过一屏后,想操作屏幕下方的元素,如果直接定位到某个坐标位置,会报元素不可见,因此外滚动类型页面的滚动条不可直接用定位工具来定位。针对此种情况,可以通过控制滚动条滑动至页面底部的方式,直接获取外滚动类型页面所对应的页面数据。
54.在实际应用中,当检测到子页面的页面类型为内滚动类型时,可以控制滚动条滑动至页面底部,以此来加载页面中的数据,在子页面中滚动条滚动至相应子页面最底端的过程中,获取子页面的页面数据,页面数据中包括至少一个待应用标签和相应的标签内容。
55.可选的,若页面类型为翻页切换类型,则基于相应子页面中各分页页面,确定翻页数量,并基于翻页数量确定当前分页位置;基于当前分页位置从前一分页页面切换至当前分页页面,并获取当前分页页面对应的至少一个待存储标签和相应的标签内容;基于各分页页面所对应的至少一个待存储标签和相应的标签内容,确定相应子页面的页面数据。
56.需要说明的是,在有一些网页中,存在翻页的情况,在点击下一页时,网页的网址不会发生变化,但是地址栏的链接会发生变化。针对此种情况,可以通过更改地址栏的链接实现正常翻页加载并提取数据。
57.在实际应用中,当检测到子页面的页面类型为翻页切换类型时,可以统计所需翻页的数量,即子页面中各分页页面的翻页数量。进一步的,基于翻页数量生成相应的分页链接,即分页地址。例如,可以令初始翻页链接为1,作为第一页的分页链接,加载第一页的页面数据。在1的基础上加1生成第二页分页链接,从第一页切换至第二页,获取第二页的页面数据,相应的,可以获取得到每个分页页面所对应的页面数据,得到子页面的所有页面数据。示例性的,翻页过程步骤可以为:1、获取总分页页面数量;2、利用for循环改变链接中page的值,进行翻页。链接中有page关键字,将链接中page的值改为3,正常访问第三页。可通过更改链接中关键字的值,实现翻页,进而提取出所有网页中的翻页标签数据,实现动态数据获取的便捷性。
58.s140、基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数
据。
59.在实际应用中,在获取子页面的页面数据时,可以将页面数据中的标签和相应的标签内容进行对应存储,如可以利用字典的键-值索引和列表索引配合存储,将标签作为键,将相应标签内容作为值,得到待采集页面相对应的目标数据,以便后续方便查找和使用页面数据。
60.本发明实施例的技术方案,通过在接收到数据采集请求时,确定数据采集请求对应的至少一个资源定位信息;确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;基于各子页面所对应的页面数据,确定与待采集页面相对应的目标数据,解决了现有技术中通过限制网页访问频率的方式,导致采集效率低不全面的问题,实现了通过确定采集页面对应的页面类型,基于与页面类型相对应的资源定位跳转方式、存储位置更换方式和协议地址更换方式等采集处理方式,获取页面所对应的页面数据,提高数据采集的便捷性和全面性,有效解决数据采集困难的问题。
61.实施例二
62.图2是根据本发明实施例二提供的一种数据采集方法的流程图,在前述实施例的基础上,对s130作进一步的细化。其具体的实施方式可以参见本实施例技术方案。其中,与上述实施例相同或者相应的技术术语在此不再赘述。
63.如图2所示,该方法具体包括如下步骤:
64.s210、当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息。
65.s220、确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型。
66.s230、确定在跳转至与所述当前资源定位信息相对应的待采集页面后所获取标签的累计标签数量。
67.在上述实施例的基础上,在基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据时,可以执行资源定位跳转方式所对应的数据采集方式,防止数据采集被限制。
68.具体来说,可以在跳转至与当前资源定位信息相对应的待采集页面后,记录获取待使用标签、待应用标签、待存储标签等各种标签的标签数量总和,得到累计标签数量。
69.s240、若所述累计标签数量超过采集数量阈值,则跳转至与下一资源定位信息相对应的待采集页面,并当从所述下一资源定位信息的待采集页面中获取的标签数量超过所述采集数量阈值时,跳转至所述当前资源定位信息的历史采集页面位置继续获取标签,并基于继续获取的标签重新确定累计标签数量,以基于获取的标签和相应标签内容,得到相应子页面的页面数据。
70.其中,采集数量阈值可以理解为预设的标签采集数量限值。
71.在实际应用中,当检测到累计标签数量超过采集数量阈值时,说明在该网站中采集的数量过大,容易被数据供应方认为是恶意采集数据,此时为了防止访问被限制,可以更换资源定位信息,从当前资源定位信息跳转至下一资源定位信息对应的待采集页面进行数
据采集,进而当检测到在下一资源定位信息的待采集页面中所采集的标签数量超过采集数量阈值时,可以重新返回至当前资源定位信息的页面从历史采集位置继续采集数据,也可以是跳转至其他资源定位信息的页面进行数据采集。需要说明的是,每次跳转至一个资源定位信息对应的页面时,上一次的累计标签数量清零,设置初始标签数量为0,获取标签时在0的基础上确定累计标签数量,也就是说,在每次跳转至某个网站时,从0开始重新计算累计标签数量。示例性的,在进入某个网站获取第一个标签成功时,马上退出网页访问,进入第二个网页进行标签采集,在访问成功时,再重新回到第一个网页或其他页面中继续标签采集,以此来保证不被访问限制。
72.s250、基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数据。
73.本实施例的技术方案,通过确定在跳转至与当前资源定位信息相对应的待采集页面后所获取标签的累计标签数量,当累计标签数量超过预设采集数量阈值时,更换采集的网站,跳转至新的资源定位信息对应的待采集页面,有效防止数据采集被限制,提高数据采集的效率。
74.实施例三
75.图3是根据本发明实施例三提供的一种数据采集方法的流程图,在前述实施例的基础上,对s130作进一步的细化。其具体的实施方式可以参见本实施例技术方案。其中,与上述实施例相同或者相应的技术术语在此不再赘述。
76.如图3所示,该方法具体包括如下步骤:
77.s310、当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息。
78.s320、确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型。
79.s330、对于各数据采集周期,确定当前数据采集周期所对应的数据存储空间,并将在所述当前数据采集周期中获取的相应子页面所对应的页面数据存储至所述数据存储空间。
80.需要说明的是,在基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据时,可以执行存储位置更换方式所对应的采集处理方式,防止数据采集被限制。
81.其中,数据采集周期是基于采集时长阈值确定的时长,如,可以为10分钟,也可以为5分钟。采集时长阈值可以理解为预设的标签采集时长限值,以基于采集时长阈值调整数据存储位置。当前数据采集周期所对应的数据存储空间区别于下一数据采集周期所对应的数据存储空间。
82.具体来说,在采集某个子页面所对应的页面数据时,可以记录采集时长,得到累计的采集时长,当累计采集时长达到数据采集周期时,达到了采集时长阈值,此时需要更换数据存储空间。在实际应用中,在采集某个子页面所对应的页面数据的初始采集时刻时,可以确定一个本次数据采集周期内所要使用的数据存储空间,如mysql_1,在数据采集的过程中,可以从初始采集时刻开始记录,当累计采集时长达到数据采集周期时,可以认为本次数据采集周期任务结束,同时在数据采集的过程中,将本次数据采集周期所采集的页面数据
实时存储到mysql_1中。重新开始下一轮数据采集周期,此时重新计算累计采集时长,并确定相应的数据存储空间,如mysql_2,以在累计采集时长达到数据采集周期时,将采集的数据实时存储至mysql_2,并继续为下一轮数据采集周期确定页面数据所要存储到的数据存储空间。
83.需要说明的是,可以设置多个本地mysql,在确定当前数据存储空间时,可以从各mysql中随机选择一个mysql进行数据存储,只需满足当前数据采集周期与下一数据采集周期存储数据时所使用的mysql不同即可。也可以将各mysql进行排队,依次调用使用,例如,当采集数据时,可以将采集的页面数据存储至mysql1中,当检测到累计数据采集时长达到数据采集周期对应时长时,将排在mysql1后面的mysql2作为待使用的数据存储空间,此时开启新一轮数据采集,将采集的数据存储至mysql2中,并得到累计的数据采集时长,当数据采集时长达到数据采集周期对应时长时更换数据存储空间。当各mysql均使用了一遍,可以基于各mysql的剩余内存,将各mysql进行排队,优先将数据存储至内存剩余量大的mysql中,若mysql内存为空,则继续存储至下一个mysql中,不仅避免数据采集被限制,还实现了数据的实时动态存储,提高数据采集效率。
84.s340、建立所述页面数据中至少一个待解析标签与相应标签内容的映射关系。
85.在本实施例中,在将页面数据存储至数据存储空间的过程中,可以建立各待解析标签与相应标签内容的映射关系。如利用字典的键-值索引和列表索引配合存储,将标签作为键,将相应标签内容作为值,得到待采集页面相对应的目标数据,以便后续方便查找和使用页面数据。
86.需要说明的是,在采集到页面数据之后,页面数据可能是被字符串加密处理过的数据,此时可以对页面数据中的标签数据进行解密,得到解密后的数据进程数据存储。
87.可选的,在建立页面数据中至少一个待解析标签与相应标签内容的映射关系之前,还包括:若待解析标签的标签类型为加密类型,则对待解析标签和相应标签内容进行解密处理,得到解密后的待解析标签和相应标签内容。
88.在实际应用中,可以对待解析标签的标签类型进行解析,当标签类型为加密类型时,对待解析标签和相应标签内容进行解密处理,得到解密后的待解析标签和相应标签内容。例如,在使用requests库进行请求,解析数据时,可以使用json()方法,将字符串格式的json数据转化为字典格式,然后利用字典的键-值索引和列表索引配合使用,解析json数据,或者使用get()方法和列表索引解析json数据,得到解密后的待解析标签和相应标签内容。
89.s350、基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数据。
90.本实施例的技术方案,通过确定获取相应子页面所对应的页面数据时所对应的累计数据采集时长,当累计数据采集时长超过采集时长阈值时,更换数据存储空间,防止出现因长时间单一向某一数据库输送数据,访问被限制的情况,提高数据采集的效率。
91.实施例四
92.图4是根据本发明实施例四提供的一种数据采集方法的流程图,在前述实施例的基础上,对s130作进一步的细化。其具体的实施方式可以参见本实施例技术方案。其中,与上述实施例相同或者相应的技术术语在此不再赘述。
93.如图4所示,该方法具体包括如下步骤:
94.s410、当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息。
95.s420、确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型。
96.s430、对于各地址更换周期,从预先创建的协议地址池中调取与当前地址更换周期所对应的客户端的网际协议地址,并将所述网际协议地址从所述协议地址池中删除,以在获取相应子页面的页面数据时,基于所述网际协议地址生成数据采集请求。
97.在上述实施例的基础上,在基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据时,可以执行协议地址更换方式所对应的采集处理方式,防止数据采集被限制。
98.其中,地址更换周期可以理解为更换协议地址的时长。协议地址池中包括至少一个客户端的网际协议地址。
99.具体来说,可以在每到达到一个地址更换周期时,从协议地址池中随机调取出一个新的客户端网际协议地址,并将此网际协议地址从协议地址池中删除,以生成与新的网际协议地址相对应的数据采集请求继续进行数据加载和采集,保证网际协议地址的随机性,不重复性,且在每一次用完后将不再使用,更好的保证访问网站的顺利进行,防止被限制。
100.为了保证协议地址池中存储有满足预设需求数量的网际协议地址,可选的,还包括:在检测到协议地址池中待使用协议地址的数量小于预设数量时,基于地址生成组件生成待存储协议地址,并将待存储协议地址存储至协议地址池中。
101.在本实施例中,可以协议地址池中的网际协议地址用完一个则少一个,可以实时监测协议地址池中待使用协议地址的数量,当数量小于预设数量值时,可以利用地址生成组件生成新的网际协议地址,作为待存储协议地址,并存储至协议地址池中,实现在线实时获取网际协议地址,保证获取的网际协议地址是随机的,不重复的,防止被限制访问。
102.s440、基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数据。
103.本实施例的技术方案,通过对于各地址更换周期,从预先创建的协议地址池中调取与当前地址更换周期所对应的客户端的网际协议地址,并将网际协议地址从所述协议地址池中删除,以在获取相应子页面的页面数据时,基于网际协议地址生成数据采集请求,实现在线实时获取网际协议地址,并保证获取的网际协议地址是随机的,不重复的,有效防止被限制访问。
104.实施例五
105.作为上述实施例的一可选实施例,图5是根据本发明实施例五提供的一种数据采集方法示意图。具体的,可以参见下述具体内容。
106.参见图5,可以输入采集数据所对应的网页网址,即资源定位信息,发起数据采集请求,同时可以导入beautifulsoup工具包,以便在采集数据时,利用beautifulsoup进行数据解析和提取,提高提取数据的效率与爬虫开发效率。当接收到数据采集请求之后,可以跳转至资源定位信息所对应的待采集页面,加载网页内容,并保存到本地,进一步的,可以解
析网页内容,选择所需的标签,提取标签和标签内容,并进行对应存储。
107.在上述方案的基础上,在数据采集时,可以检测标签的标签类型,判断标签是否被加密,若标签类型为加密,则需要破译字符串,可以在使用requests库进行请求时,使用json()方法,将字符串格式的json数据转化为字典格式,然后利用字典的键-值索引和列表索引配合使用解析json数据,或者使用get()方法和列表索引解析。json是一种轻量级的数据交换格式,它采用完全独立于编程语言的文本格式来存储和表示数据,json比xml更小、更快,更易解析简介和清晰的层次结构,提高数据采集和解析的效果。
108.在上述方案的基础上,在数据采集时,会有一些动态网页的文本。动态网页是指网页数据仅加载在用户当停留的窗口中,只有当用户对页面翻滚时数据才会加载。动态网页在数据加载时,数据会加载但并不会改变资源定位信息(url)。动态网页中页面类型包括三种,内滚动类型、外滚动类型和翻页切换类型。当采集内滚动类型页面的数据时,可以利用window.scrollto组件模拟用户进行界面下滑来加载动态的数据标签。当采集外滚动类型页面的数据时,可以通过控制滚动条滑动至页面底部的方式,直接获取外滚动类型页面所对应的页面数据。当采集翻页切换类型页面的数据时,设置翻页过程,翻页过程步骤可以为:1、获取总分页页面数量;2、利用for循环改变链接中page的值,进行翻页。链接中有page关键字,将链接中page的值改为3,正常访问第三页。可通过更改链接中关键字的值,实现翻页,进而提取出所有网页中的翻页标签数据,实现动态数据获取的便捷性。
109.在上述方案的基础上,为了避免数据采集被限制,提高数据采集的效率,可以通过更换mysql进行数据存储,防止被检测到由时长期单一的mysql进行数据存储,进而导致访问被限制情况发生。在实际应用中,在访问url时,要先转化成ip地址,再通过ip地址在互联网上进行数据传输。如果某个ip短时间高并发请求网站,该ip会被访问限制,限制进行数据采集,可以采用构建协议地址池的方式来避免访问限制。例如,可以通过在线获得实时更新的客户端的网际协议地址(ip),如在特定的网页ip生成组件中,在每小时中会有60左右个ip是可以随意使用的,可以将ip全部下载到协议地址池,然后检测ip是否没有被使用过,如果检测未被使用,再放到协议地址池中,如果使用过该ip,就在协议地址池中删掉,每过一分钟再重新获取新的ip,以此保证在每次预设时长内的数据收集都使用不一样的ip地址,实现网际协议地址的随机性,不重复性,且在每一次用完后将不再使用,保证访问网站的顺利进行。在实际应用中,可能会存在在某个网站数据采集大量标签数据被访问限制的情况,可以在每一次进入某个资源定位信息对应网站获取第一个标签成功时,马上退出网页访问,进入第二个网页进行标签爬取,在访问成功时,再重新回到第一个网页中继续标签处理,以此来保证不被访问限制。还可以通过定时更改数据头user-agent的方式以及限制数据采集时长的方式,防止数据采集被限制,使采集顺利进行。
110.本实施例的技术方案,通过在接收到数据采集请求时,确定数据采集请求对应的至少一个资源定位信息;确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;基于各子页面所对应的页面数据,确定与待采集页面相对应的目标数据,解决了现有技术中通过限制网页访问频率的方式,导致采集效率低不全面的问题,实现了通过确定采集页面对应的页面类型,基于与页面类型相对应的资源定位跳转方式、存储位置更
换方式和协议地址更换方式等采集处理方式,获取页面所对应的页面数据,提高数据采集的便捷性和全面性,有效解决数据采集困难的问题。
111.实施例六
112.图6是根据本发明实施例六提供的一种数据采集装置的结构示意图。如图6所示,该装置包括:资源定位信息确定模块610、页面类型确定模块620、页面数据确定模块630和目标数据确定模块640。
113.其中,资源定位信息确定模块610,用于当接收到数据采集请求时,确定所述数据采集请求对应的至少一个资源定位信息;页面类型确定模块620,用于确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;页面数据确定模块630,用于基于所述页面类型以及与所述页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,所述采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;目标数据确定模块640,用于基于各子页面所对应的页面数据,确定与所述待采集页面相对应的目标数据。
114.本实施例的技术方案,通过在接收到数据采集请求时,确定数据采集请求对应的至少一个资源定位信息;确定与当前资源定位信息相对应的待采集页面中至少一个子页面的页面类型;基于页面类型以及与页面类型相对应的采集处理方式,获取相应子页面所对应的页面数据;其中,采集处理方式中包括资源定位跳转方式、存储位置更换方式和协议地址更换方式;基于各子页面所对应的页面数据,确定与待采集页面相对应的目标数据,解决了现有技术中通过限制网页访问频率的方式,导致采集效率低不全面的问题,实现了通过确定采集页面对应的页面类型,基于与页面类型相对应的资源定位跳转方式、存储位置更换方式和协议地址更换方式等采集处理方式,获取页面所对应的页面数据,提高数据采集的便捷性和全面性,有效解决数据采集困难的问题。
115.在上述装置的基础上,可选的,所述页面类型确定模块620,包括待采集页面跳转单元和页面类型确定单元。
116.待采集页面跳转单元,用于跳转至与所述当前资源定位信息相对应的待采集页面;
117.页面类型确定单元,用于对于所述待采集页面中各子页面,当采集当前子页面的页面数据时,确定所述当前子页面的页面格式,并基于所述页面格式,确定与所述当前子页面相对应的页面类型;
118.其中,所述页面类型包括内滚动类型、外滚动类型和翻页切换类型。
119.在上述装置的基础上,可选的,所述页面数据确定模块630,包括数据确定第一单元,所述数据确定第一单元包括滚动属性确定单元、当前窗口页面确定单元和页面数据确定单元。
120.滚动属性确定单元,用于若所述页面类型为内滚动类型,则确定与所述内滚动类型相对应的滚动属性;所述滚动属性中包括滚动周期和滚动位移量;
121.当前窗口页面确定单元,用于基于当前滚动周期和滚动位移量,确定当前窗口页面,并获取所述当前窗口页面所对应的至少一个待使用标签和相应的标签内容;
122.页面数据确定单元,用于基于各窗口页面所对应的至少一个待使用标签和相应的标签内容,确定相应子页面的页面数据。
123.在上述装置的基础上,可选的,所述页面数据确定模块630,包括数据确定第二单元,所述数据确定第二单元包括标签内容确定单元和页面数据获取单元。
124.标签内容确定单元,用于若所述页面类型为外滚动类型,则在相应子页面中滚动条滚动至所述相应子页面最底端的过程中,获取至少一个待应用标签和相应的标签内容;
125.页面数据获取单元,用于基于各待应用标签和相应的标签内容,确定所述相应子页面的页面数据。
126.在上述装置的基础上,可选的,所述页面数据确定模块630,包括数据确定第二单元,所述数据确定第二单元包括当前分页位置确定单元、待存储标签确定单元和待存储标签存储单元。
127.当前分页位置确定单元,用于若所述页面类型为翻页切换类型,则基于相应子页面中各分页页面,确定翻页数量,并基于所述翻页数量确定当前分页位置;
128.待存储标签确定单元,用于基于所述当前分页位置从前一分页页面切换至当前分页页面,并获取所述当前分页页面对应的至少一个待存储标签和相应的标签内容;
129.待存储标签存储单元,用于基于各分页页面所对应的至少一个待存储标签和相应的标签内容,确定所述相应子页面的页面数据。
130.在上述装置的基础上,可选的,所述采集处理方式包括资源定位跳转方式,所述页面数据确定模块630,包括数据处理第一单元,所述数据处理第一单元包括累计标签数量确定单元和资源定位信息跳转单元。
131.累计标签数量确定单元,用于确定在跳转至与所述当前资源定位信息相对应的待采集页面后所获取标签的累计标签数量;
132.资源定位信息跳转单元,用于若所述累计标签数量超过采集数量阈值,则跳转至与下一资源定位信息相对应的待采集页面,并当从所述下一资源定位信息的待采集页面中获取的标签数量超过所述采集数量阈值时,跳转至所述当前资源定位信息的历史采集页面位置继续获取标签,并基于继续获取的标签重新确定累计标签数量,以基于获取的标签和相应标签内容,得到相应子页面的页面数据。
133.在上述装置的基础上,可选的,所述采集处理方式包括存储位置更换方式,所述页面数据确定模块630,包括数据处理第二单元,所述数据处理第二单元包括数据存储空间确定单元和映射关系建立单元。
134.数据存储空间确定单元,用于对于各数据采集周期,确定当前数据采集周期所对应的数据存储空间,并将在所述当前数据采集周期中获取的相应子页面所对应的页面数据存储至所述数据存储空间;其中,所述数据采集周期是基于采集时长阈值确定的时长,所述当前数据采集周期所对应的数据存储空间区别于下一数据采集周期所对应的数据存储空间;
135.映射关系建立单元,用于建立所述页面数据中至少一个待解析标签与相应标签内容的映射关系。
136.在上述装置的基础上,可选的,所述采集处理方式包括协议地址更换方式,所述页面数据确定模块630,还包括解密单元。
137.解密单元,用于若所述待解析标签的标签类型为加密类型,则对所述待解析标签和相应标签内容进行解密处理,得到解密后的待解析标签和相应标签内容。
138.在上述装置的基础上,可选的,所述采集处理方式包括协议地址更换方式,所述页面数据确定模块630,包括数据处理第三单元。
139.数据处理第三单元,用于对于各地址更换周期,从预先创建的协议地址池中调取与当前地址更换周期所对应的客户端的网际协议地址,并将所述网际协议地址从所述协议地址池中删除,以在获取相应子页面的页面数据时,基于所述网际协议地址生成数据采集请求。
140.在上述装置的基础上,可选的,所述数据处理第三单元,还用于在检测到所述协议地址池中待使用协议地址的数量小于预设数量时,基于地址生成组件生成待存储协议地址,并将所述待存储协议地址存储至所述协议地址池中。
141.本发明实施例所提供的数据采集装置可执行本发明任意实施例所提供的数据采集方法,具备执行方法相应的功能模块和有益效果。
142.实施例七
143.图7是实现本发明实施例的数据采集方法的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
144.如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
145.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
146.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据采集方法。
147.在一些实施例中,数据采集方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的数据采集方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据采集方法。
148.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
149.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
150.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
151.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
152.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
153.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
154.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
155.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献