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

数据获取方法及其装置、计算机存储介质、电子设备与流程

2022-03-31 06:04:00 来源:中国专利 TAG:


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


背景技术:

2.随着大数据时代的来临与计算机技术的不断发展,每一家优秀的企业对数据的需求都非常高。网络上的信息数据量越来越高,在智能化和自动化快速发展的今天,衍生出了许多能快速获取到网页数据的方式。但随着非法获取的方式越来越多,因此对于单纯的发送网络已经获取不到数据了,那要如何才能有效获取得到数据,已经是一个严峻的课题。


技术实现要素:

3.本发明实施例提供一种数据获取方法及其装置、计算机存储介质、电子设备,用以克服或者缓解现有技术中存在的上述技术问题。
4.根据本发明的一个方面,提供了一种数据获取方法,该方法包括:
5.启动浏览器;
6.获取随机特征值;
7.根据获取的所述随机特征值修改所述浏览器的特征值;
8.通过所述浏览器访问待采集数据对应的网页;
9.触发所述网页上的标签以请求访问详情页;及
10.获取所述详情页中待采集的数据。
11.可选地,所述方法还包括:获取浏览器特定对象;根据所述浏览器特定对象生成随机特征值,并存储所述随机特征值。
12.可选地,所述随机特征值采用所述浏览器特定对象的赋值格式。
13.可选地,所述方法还包括配置运行环境,所述配置运行环境包括安装浏览器、第一脚本及浏览器控制工具。
14.可选地,所述启动浏览器为通过所述浏览器控制工具启动所述浏览器;其中,所述浏览器为chromium,所述浏览器控制工具为基于python的pyppeteer。
15.可选地,所述触发网页的标签以请求访问详情页包括:控制第一脚本模拟生成用户行为特征。其中,所述用户行为特征包括如下中的一者或几者:
16.鼠标点击、鼠标滑动及鼠标滚动条滑动。
17.可选地,所述方法还包括:每隔预定时长或随机时长重复所述获取随机特征值至获取所述详情页的数据的步骤。
18.根据本发明的另一个方面,提供了一种数据获取装置,包括:启动单元,用于启动所述浏览器;浏览器特征值获取单元,用于获取随机特征值;
浏览器特征值修改单元,用于根据获取的随机特征值修改所述浏览器的特征值;访问单元,用于通过所述浏览器访问需要待采集数据的网页;触发单元,用于触发所述网页的标签以请求访问详情页;及数据获取单元,用于获取所述详情页中待采集的数据。
19.根据本发明的又一个方面,提供了一种计算机存储介质,所述计算机存储介质上存储有计算机可执行程序,所述计算机可执行程序被运行以实施本发明任一实施例所述的方法。
20.根据本发明的又一个方面,提供了一种电子设备,所述电子设备包括存储器以及处理器,所述存储器上用于存储计算机可执行程序,所述处理器用于运行所述计算机可执行程序以实施实施本发明任一实施例所述的方法。
21.本发明实施例,根据获取的随机特征值修改浏览器的特征值,让服务器以为是不同用户的访问请求,防止被服务器误认为是非法方式,从而有效获取数据。
22.进一步地,通过模拟生成用户行为特征来触发网页上的标签,让服务器以为是用户正常的网页访问请求和浏览网页操作,从而有效获取数据。
附图说明
23.图1为本发明实施例一种数据获取方法的流程示意图;
24.图2为本发明实施例一种数据获取装置的结构示意图;
25.图3为本发明实施例一种电子设备的结构示意图。
具体实施方式
26.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
27.本发明实施例,通过模拟出不同浏览器特征和浏览器上用户的行为操作,加入到网络请求中,从而获取到正确数据。
28.图1为本发明实施例一种数据获取方法的流程示意图;如图1所示,具体地,数据获取方法10包括:
29.步骤11、启动浏览器。
30.本实施例中,采用浏览器控制工具控制所述浏览器开启。
31.本实施例中,所述浏览器可为chromium浏览器。chromium浏览器是google公司主导开发的一款网页浏览器,基于khtml的webkit渲染引擎,以bsd许可证等多重自由版权发行并开放源代码。具有高速、稳定、安全等特点。在一些运行环境中,chromium浏览器可以免安装,下载封装版后解压缩就可以直接运行。可以理解,在另一些运行环境,例如windows系统中,也可以下载安装版本并安装后运行。需要说明的是,以上描述仅为示例性的,本实施例并非唯一性限定。
32.本实施例中,所述浏览器控制工具为基于python的pyppeteer。puppeteer是google公司基于node.js开发的一个工具,可以通过javascript来控制chrome浏览器、chromium浏览器的一些操作。pyppeteer是在puppeteer上采用python语言编写的浏览器控制工具。可以理解,在其他实施例中,也可采用selenium来控制浏览器,编写语言不一定采
用python,可利用任何适宜的语言,例如java,nodejs等。
33.在一些实施例中,若运行环境未配置,步骤11之前还包括配置运行环境的步骤。所述配置运行环境包括安装浏览器、安装第一脚本及浏览器控制工具。所述第一脚本可为javascript。
34.步骤12、获取随机特征值。
35.在一些实施例中,所述随机特征值预存于存储装置中。所述存储装置预存多个随机特征值,可依照预定顺序或随机获取其中的一个或多个随机特征值。
36.在一些实施例中,在获取随机特征值前,还包括:获取浏览器特定对象;根据所述浏览器特定对象生成随机特征值,并存储所述随机特征值。
37.本实施例中,浏览器特定对象可包括,但不限于,浏览器window.navigator.useragent对象、浏览器window.navigator.languages对象、浏览器window.navigator.plugins对象。windows.navigator为window对象的一个属性,指向了一个包含浏览器相关信息的对象。window.navigator.useragent对象的值是一个特殊字符串头,服务器根据该对象的值能够识别客户使用的操作系统及版本、cpu类型、浏览器及版本等信息。浏览器window.navigator.languages对象的值表示浏览器语言,浏览器window.navigator.plugins对象的值表示浏览器所安装的插件。可以理解,在一些实施例中,还可以包括其他浏览器特定对象,例如window.navigator.platform。
38.可以理解的是,步骤11和步骤12无先后顺序限制,可以同时分别进行或调换顺序。
39.在一些实施例中,所述生成随机征值可基于上述浏览器特定对象中的一者或几者组合生成随机特征值。在一些实施例中,可基于每一浏览器特定对象生成多个随机特征值。例如,对每一浏览器特定对象可预设一特征值组,可从这些特征值组中随机选取一个特征值作为随机特征值。每一随机特征值可采用对应浏览器特定对象的赋值格式,如此便于直接将浏览器特征值赋值为获取的随机特征值。
40.由于服务器通过这些浏览器特征值来识别用户设备的软硬件环境,因此通过将浏览器特征值赋值为不同的随机特征值可随机模拟出不同的运行环境,让服务器误以为是不同的用户在请求访问网页,从而防止被服务器误认为是非法方式的操作。
41.步骤13、根据获取的随机特征值修改所述浏览器的特征值。
42.具体地,将所述浏览器的特征值设置成获取的随机特征值,例如将浏览器语言设置成随机生成的window.navigator.languages对象的值,或将所述浏览器的插件设置成随机生成的window.navigator.plugins对象的值。
43.例如,获取的语言对象对应的随机特征值包括:languages:["zh-cn","zh","zh-tw","en-us"]、languages:["zh-cn","zh"];对应的浏览器的语言对象的特征值包括:['zh-cn','zh','hy','ps','qu','bg','sn']或者['zh-cn','th','is','az']。
[0044]
步骤14、通过所述浏览器访问待采集数据对应的网页。
[0045]
具体地,待采集数据对应的网页是常见的页面类型之一,它是承接导航页与详情页的中间页,集合了相关内容的所有标签。例如,如果待采集数据的网站是网易新闻,则对应的网页为网易新闻的首页,首页上有多个条列新闻标签,通过点击新闻标签可进一步展现新闻标签对应的详情页。
[0046]
更为具体地,控制所述浏览器访问所述待采集数据对应的网页,即通过所述浏览
器向服务器发出request访问请求,请求访问所述网页。所述request访问请求封装了所述网页的网址(url)及以上所述的浏览器特征值。服务器根据该request访问请求返回网页,并解码成所述浏览器支持的格式。
[0047]
步骤15、触发所述网页上的标签以请求访问详情页。
[0048]
所述列表页集合了多个详情页对应的标签,通过触发多个详情页标签来发出访问详情页的请求。本实施例中,为了进一步提升效果,通过浏览器控制工具控制第一脚本模拟生成用户行为特征来触发所述网页上的标签以请求访问详情页。
[0049]
本实施例中,通过pyppeteer控制javascript模拟生成用户行为特征。具体地,所述用户行为特征可包括,但不限于,鼠标点击、鼠标滑动或鼠标滚动条滑动。其中,进行鼠标点击,点击次数可随机一次或多次,例如5至20次;进行鼠标滑动,离开鼠标当前位置,滑动至一随机位置;对滚动条进行上下滑动,滑动长度随机。模拟生成的用户行为特征可包括上所述用户行为中的一种或几种的组合。例如在所述网页,通过模拟鼠标点击来触发所述网页上的一个标签,让服务器以为是用户在网页上的操作。在网页或详情页,模拟鼠标随机滑动或对滚动条进行上下滑动,让服务器以为是用户在浏览网页时的操作。
[0050]
步骤16、获取详情页数据。
[0051]
具体地,在模拟生成用户行为特征后,网页上的标签被触发,标签对应的详情页从服务器下载返回至请求端,从而能够获取到详情页上待获取的数据。
[0052]
上述实施例中,网页包括的标签有多个,在步骤16后,还包括步骤:判断是否还有剩余标签未触发,若是,则重复步骤15和步骤16,若否,流程结束。如此,通过重复执行步骤15和16可获取到网页包括的所有详情页的数据。可以理解的是,若需要采集的数据对应的网页为2个或2个以上,则重复执行步骤14及之后的步骤直到所有网页均采集完毕。
[0053]
上述实施例中,通过将浏览器特征值修改为随机特征值及模拟生成用户行为特征来避免被服务器认为是非法获取而拒绝访问,从而提升获取数据的效果。
[0054]
在一些实施例中,为了进一步提升效果,可每间隔预定时长或间隔一随机时长重新获取随机特征值注入所述浏览器,让服务器以为是不同用户的访问,即提升随机生成浏览器特征值的频率来提升获取效果。
[0055]
可以理解的是,在一些没有设置拒绝获取机制的网站或机制不太严格的网站,也可以动态减少获取随机特征的类别、获取随机特征值的频率,减少或省略模拟生成的用户行为特征,例如仅仅模拟鼠标点击,点击次数也相应减少等,从而提升获取数据的效率。
[0056]
图2为本发明实施例一种基于浏览器特征随机的网络爬虫装置2的结构示意图;如图2所示,其包括:
[0057]
启动单元22用于启动浏览器。
[0058]
本实施例中,采用浏览器控制工具控制所述浏览器开启。
[0059]
本实施例中,所述浏览器可为chromium浏览器。chromium浏览器是google公司主导开发的一款网页浏览器,基于khtml的webkit渲染引擎,以bsd许可证等多重自由版权发行并开放源代码。具有高速、稳定、安全等特点。在一些运行环境中,chromium浏览器可以免安装,下载封装版后解压缩就可以直接运行。可以理解,在另一些运行环境,例如windows系统中,也可以下载安装版本并安装后运行。需要说明的是,以上描述仅为示例性的,本实施例并非唯一性限定。
[0060]
本实施例中,所述浏览器控制工具为基于python的pyppeteer。puppeteer是google公司基于node.js开发的一个工具,可以通过javascript来控制chrome浏览器、chromium浏览器的一些操作。pyppeteer是在puppeteer上采用python语言编写的浏览器控制工具。可以理解,在其他实施例中,也可采用selenium来控制浏览器,编写语言不一定采用python,可利用任何适宜的语言,例如java,nodejs等。
[0061]
在一些实施例中,还包括运行环境配置单元21。所述环境配置单元21,用于配置运行环境,包括安装浏览器、安装第一脚本及浏览器控制工具。所述第一脚本可为javascript。
[0062]
随机特征值获取单元23用于获取随机特征值。
[0063]
在一些实施例中,所述随机特征值预存于存储装置中。所述存储装置预存多个随机特征值,可依照预定顺序或随机获取其中的一个或多个随机特征值。
[0064]
在一些实施例中,在获取随机特征值前,还包括:获取浏览器特定对象;根据所述浏览器特定对象生成随机特征值,并存储所述随机特征值。
[0065]
本实施例中,浏览器特定对象可包括,但不限于,浏览器window.navigator.useragent对象、浏览器window.navigator.languages对象、浏览器window.navigator.plugins对象。windows.navigator为window对象的一个属性,指向了一个包含浏览器相关信息的对象。window.navigator.useragent对象的值是一个特殊字符串头,服务器根据该对象的值能够识别客户使用的操作系统及版本、cpu类型、浏览器及版本等信息。浏览器window.navigator.languages对象的值表示浏览器语言,浏览器window.navigator.plugins对象的值表示浏览器所安装的插件。可以理解,在一些实施例中,还可以包括其他浏览器特定对象,例如window.navigator.platform.
[0066]
在一些实施例中,所述随机特征值可基于上述浏览器特定对象中的一者或几者组合生成随机特征值。在一些实施例中,对于每一浏览器特定对象,可预设多个随机特征值。例如,对每一浏览器特定对象可预设一特征值组,可从这些特征值组中随机选取一个特征值作为随机特征值。每一随机特征值可采用对应浏览器特定对象的赋值格式,如此便于直接将浏览器特征值赋值为获取的随机特征值。
[0067]
由于服务器通过这些浏览器特征值来识别用户设备的软硬件环境,因此通过将这些浏览器特征值修改为随机特征值可随机模拟出不同的运行环境,让服务器误以为是不同的用户在请求访问网页,从而防止被服务器误认为是非法方式的操作。
[0068]
浏览器特征值修改单元24用于将浏览器特征值修改为获取的所述随机特征值。
[0069]
具体地,将所述浏览器的特征值设置成随机特征值,例如将浏览器语言设置成随机生成的window.navigator.languages对象的值,或将所述浏览器的插件设置成随机生成的window.navigator.plugins对象的值。
[0070]
访问单元25用于通过所述浏览器访问待采集数据对应的网页。
[0071]
具体地,待采集数据对应的网页是常见的页面类型之一,它是承接导航页与详情页的中间页,集合了相关内容的所有标签。例如,如果待采集数据对应的网站是网易新闻,则待采集数据对应的网页为网易新闻的首页,首页上有多个条列新闻标签,通过点击新闻标签可进一步展现新闻标题集合或新闻详情页。
[0072]
更为具体地,控制所述浏览器访问所述待采集数据对应的网页,即通过所述浏览
器向服务器发出request请求,所述request请求封装了所述网页的网址(url)及上所述的浏览器特征值。服务器根据该request请求返回网页,并解码成所述浏览器支持的格式。
[0073]
触发单元26用于触发所述网页上的标签以请求访问详情页。
[0074]
所述网页集合了多个详情页对应的标签,通过触发多个标签来发出访问详情页的请求。本实施例中,为了进一步提升效果,通过浏览器控制工具控制第一脚本模拟生成用户行为特征来触发所述网页上的标签以请求访问详情页。
[0075]
本实施例中,pyppeteer控制javascript模拟生成用户行为特征。具体地,所述用户行为特征可包括,但不限于鼠标点击、鼠标滑动和鼠标滚动条滑动。具体地,进行鼠标点击,点击次数随机为一次或多次,例如随机5至20次;进行鼠标滑动,离开鼠标当前位置,华东位置随机;对滚动条进行上下滑动,滑动长度随机。模拟生成的用户行为特征可包括上所述用户行为中的一种或几种的组合。
[0076]
数据获取单元27用于获取详情页中待采集的数据。
[0077]
具体地,在模拟生成用户行为特征后,网页上的标签被触发,标签对应的详情页从服务器下载返回至请求端,从而能够获取到详情页中待采集的数据。
[0078]
上述实施例中,网页包括的标签有多个,所述数据获取装置2还包括判断单元用于判断是否还有剩余标签未触发,若是,则重复模拟生成用户行为特征来触发标签及获取该标签对应的详情页的数据,若否,流程结束。如此,通过重复模拟生成用户行为特征和获取详情页数据可获取到网页包括的所有详情页的数据。可以理解的是,若需要待采集数据对应的网页为2个或2个以上,则重复访问网页、模拟生成用户行为特征来触发标签及获取该标签对应的详情页的数据直到所有网页对应的数据均采集完毕。
[0079]
上述实施例中,通过将浏览器特征值修改为随机特征值及模拟生成用户行为特征来避免被服务器认为是非法获取而拒绝访问,从而提升获取数据的效果。
[0080]
在一些实施例中,为了进一步提升效果,可每间隔预定时长或间隔一随机时长重新获取随机特征值注入所述浏览器,让服务器以为是不同用户的访问,即提升随机生成浏览器特征值的频率来提升效果。
[0081]
可以理解的是,在一些没有设置拒绝获取机制的网站或机制不太严格的网站,也可以动态减少获取的浏览器特征的类别、获取浏览器特征值的频率,减少或省略模拟生成的用户行为特征,例如仅仅模拟鼠标点击,点击次数也相应减少等,从而提升获取数据的效率。
[0082]
图3为本发明实施例一种电子设备3的结构示意图;如图3所示,所述电子设备3包括存储器31以及处理器32,所述存储器上用于存储计算机可执行程序,所述处理器用于运行所述计算机可执行程序以实施本发明任一实施例所述的方法。
[0083]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本发明的方法中限定的上述功能。需要说明的是,本发明所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——
电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0084]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如python、java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0085]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0086]
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,触发单元还可以被描述为“模拟生成用户行为特征”。
[0087]
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献