CN110347902A - 一种数据获取方法、装置及系统 - Google Patents
一种数据获取方法、装置及系统 Download PDFInfo
- Publication number
- CN110347902A CN110347902A CN201910646996.6A CN201910646996A CN110347902A CN 110347902 A CN110347902 A CN 110347902A CN 201910646996 A CN201910646996 A CN 201910646996A CN 110347902 A CN110347902 A CN 110347902A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- target
- request
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013481 data capture Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 235000014510 cooky Nutrition 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005336 cracking Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 241000892667 Cnidium silaifolium Species 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据获取方法、装置及系统,该方法应用于配置于终端或服务器上第一模块,包括:在第二模块向数据服务器请求目标数据时,抓取第二模块向数据服务器发送的至少一个网络请求;根据预设规则,从抓取到的网路请求中筛选出目标获取请求;数据服务器在接收到目标获取请求后会返回目标数据的数据地址目标获取请求的发送方;利用目标获取请求获取目标数据。在数据获取过程中,无需对加密规则进行破解,降低了数据获取的难度,减少了工作量。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据获取方法、装置及系统。
背景技术
随着互联网技术的发展,人们在互联网上的生活也愈加丰富,越来越多的人倾向于在互联网上的视频分享平台上分享自制视频,视频分享平台如何对自制视频内侵权内容的审核也就成为了一项亟待解决的问题。
目前,在对自制视频进行审核时,需要将自制视频与版权视频进行对比,从而判断自制视频中是否包括版权视频的内容,自制视频是否包括侵权内容。其中,版权视频的获取一般需要对其源播放统一资源定位符(Uniform Resource Locator,url)所使用的加密规则进行破解,从而获取版权视频的数据地址,实现版权视频的获取。一旦版权视频的加密规则变更,则又需要重新破解,破解难度高、工作量大。
发明内容
有鉴于此,本申请实施例提供了一种数据获取方法、装置及系统,能够解决现有技术中视频获取难度高、工作量大的问题。
本申请实施例提供的数据获取方法,应用于第一模块;所述方法包括:
在第二模块向数据服务器请求目标数据时,抓取所述第二模块向所述数据服务器发送的至少一个网络请求;
根据预设规则,从抓取到的网路请求中筛选出目标获取请求;所述数据服务器在接收到所述目标获取请求后返回所述目标数据的数据地址;
利用所述目标获取请求获取所述目标数据。
可选的,所述利用所述目标获取请求获取所述目标数据,具体包括:
发送所述目标获取请求至所述数据服务器;
接收所述数据服务器对所述目标获取请求的应答;所述应答携带所述目标数据的数据地址;
从所述数据服务器对目标获取请求的应答中获取所述目标数据的数据地址;
利用所述目标数据的数据地址,获取所述目标数据。
可选的,所述根据预设规则,从抓取到的网路请求中筛选出目标获取请求,具体包括:
判断待选网络请求中是否包括期望域名和/或期望参数;所述待选网络请求是所述抓取到的网路请求中的任意一个;
若是,则将所述待选网络请求作为所述目标获取请求。
可选的,所述第二模块向数据服务器请求目标数据时,抓取所述第二模块向所述数据服务器发送的至少一个网络请求,之前还包括:
将所述目标数据的源url和用户登陆信息发送至所述第二模块,以使所述第二模块利用所述源url和所述用户登陆信息发送所述网络请求至所述数据服务器。
可选的,所述用户登陆信息包括所述用户登陆临时文件,所述将所述目标数据的源url和用户登陆信息发送至所述第二模块,之前还包括:
判断所述用户登陆临时文件是否有效;
若否,则重新登录所述数据服务器获得有效的用户登陆临时文件。
可选的,所述将所述目标数据的源url和用户登陆信息发送至所述第二模块,之前还包括:
判断所述用户登陆信息的使用频率是否超于预设阈值;
若是,则更新所述用户登陆信息。
本申请实施例提供的数据获取装置,应用于第一模块;所述装置包括:请求获取单元、请求提取单元和数据获取单元;
所述请求获取单元,用于在第二模块向数据服务器请求目标数据时,抓取所述第二模块向所述数据服务器发送的至少一个网络请求;
所述请求提取单元,用于根据预设规则,从抓取到的网路请求中筛选出目标获取请求;所述数据服务器在接收到所述目标获取请求后返回所述目标数据的数据地址;
所述数据获取单元,用于利用所述目标获取请求获取所述目标数据。
本申请实施例提供的一种数据获取系统,包括:第一模块和第二模块;
所述第二模块,用于发送网络请求至数据服务器;所述网络请求用于从所述数据服务器获取目标数据,所述网络请求包括目标获取请求,所述数据服务器在接收到所述目标获取请求后返回所述目标数据的数据地址;
所述第一模块,用于在所述第二模块向所述数据服务器请求所述目标数据时,抓取所述第二模块发送的网络请求,并根据预设规则从抓取到的网路请求中筛选出所述目标数据获取请求,利用所述目标获取请求获取所述目标数据。
可选的,所述第二模块为多个;
所述第一模块,还用于基于负载均衡规则,向每个所述第二模块发送各个目标数据的源url和用户登陆信息;
所述第二模块,具体用于利用所述第一模块发送的目标数据的源url和用户登陆信息,发送网络请求至所述数据服务器。
可选的,所述第一模块,还用于按照预设周期,重启所述第二模块。
与现有技术相比,本申请至少具有以下优点:
在本申请实施例中,在第二模块向数据服务器请求目标数据时,第一模块抓取第二模块为获得目标数据向数据服务器发送的各个网络请求,再基于预设规则,从抓取到的网络请求中筛选出目标获取请求。数据服务器在接收到该目标获取请求时,会返回目标数据的数据地址至目标获取请求的发送方,以便目标获取请求的发送方利用该数据地址获取目标数据。第一模块在筛选出目标获取请求后,可以利用该目标获取请求获取目标数据,无需对加密规则进行破解,降低了数据获取的难度,减少了工作量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种数据获取方法的流程示意图;
图2为本申请实施例提供的一种网络请求列表及视频url地址的示意图;
图3为本申请实施例提供的另一种数据获取方法的流程示意图;
图4为本申请实施例提供的一种用户登录cookie的示意图;
图5为本申请实施例提供的一种数据获取装置的结构示意图;
图6为本申请实施例提供的一种数据获取系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
为了满足现有技术中数据获取需要,本申请实施例提供了一种数据获取方法、装置及系统,在第二模块向数据服务器请求目标数据时,第一模块利用抓包技术抓取第二模块为了得到目标数据而向数据服务器发送的网络请求。然后,第一模块根据预设规则从抓取到的网络请求中,筛选出目标获取请求。数据服务器在接收到该目标获取请求后,会返回目标数据的数据地址至目标数据的数据地址至目标获取请求的发送方,以便目标获取请求的发送方利用该数据地址获得目标数据。然后,第一模块在筛选出目标数据获取请求后,可以利用该目标获取请求获取目标数据,无需对加密规则进行破解,降低了数据获取的难度,减少了工作量。
需要说明的是,本申请实施例提供的数据获取方法,不仅可以用于获取视频文件以便对自制视频是否侵权进行审核,还可以获取其他类型的数据,例如获取数据库中存储的数据等等,这里不进行限定。下面以视频数据为例进行说明,其他类型数据的获取方式与此类似,不再一一赘述。
还需要说明的是,在本申请实施例中,第一模块可以配置于任意终端或服务器中,这里不进行限定。第二模块可以配置于终端,通过向数据服务器发送网络请求获取数据。在一个具体的场景中,第二模块可以是终端上配置的浏览器,在用户输入视频url地址后,浏览器向数据服务器发送网路请求以获得该视频的数据地址,实现视频的播放。
基于上述思想,为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。
参见图1,该图为本申请实施例提供的一种数据获取方法的流程示意图。
本申请实施例提供的数据获取方法,包括:
S101:在第二模块向数据服务器请求目标数据时,第一模块抓取第二模块向数据服务器发送的至少一个网络请求。
可以理解的是,目标数据即为待获取的数据,例如在视频网站上播放的视频数据、数据库中的数据等。为了获取目标数据,第二模块一般会向数据服务器发送至少一个网络请求,使数据服务器返回目标数据的数据地址,以便利用该数据地址获取目标数据。在本申请实施例中,第一模块通过抓取第二模块为了获取目标数据而发送至服务器端的至少一个网络请求,再基于抓取到的网络请求获取目标数据。在实际应用中,第一模块可以利用网络抓包的形式获取第二模块向服务器端发送的网络请求。
作为一个示例,当第二模块部署于浏览器中时,为了获取到视频数据,第二模块先将用户的登录信息以网络请求的形式发送至数据服务器进行验证,数据服务器在验证通过后返回确定应答,然后,第二服务器根据输入的视频url地址发送至少一个网络请求向数据服务器请求目标数据的数据地址。第一模块即可以利用网络抓包的形式获取第二模块向数据服务器发送的各个网络请求。图2举例示出了一种第二模块向数据服务器请求数据时发送的网络请求列表,图中相应的举例示出了一种视频url地址。
在实际应用中,可以利用以下两种工具实现网络抓包:
第一种是Splash,但其存在长久运行时易导致内存泄露的问题,所以在使用中需要加入定时重启操作。第二种是Pychrome,该工具是一个基于google-chrome的python抓包工具,简单易用。Pychrome可以部署为有头或无头两种类型,有头Pychrome渲染效果较好但速度较慢,无头Pychrome渲染效果一般,但速度较快。由于上述两种工具的渲染过程会使用大量的内存,splash长久运行存在内存泄露的问题,而pychrome的崩溃与异常往往也会造成内存的长久不释放。因此需要对其进行定时重启,这样能保证系统的高可用。实际应用中,可以使用ansible工具进行定时重启。
S102:第一模块根据预设规则,从抓取到的网路请求中筛选出目标获取请求。
根据图2所示的例子可知,第二模块在请求目标数据的数据地址时,向数据服务器多次发送网络请求,数据服务器会根据接收到的网络请求返回相应的应答。在本申请实施例中,数据服务器在接收到目标获取请求后会返回目标数据的数据地址。第一模块为了获得目标数据,从抓取到的网络请求中筛选出目标获取请求后,即可再次利用该目标获取请求获得目标数据的数据地址,从而得到该目标数据。
在实际应用中,本领域技术人员可以根据目标获取请求的具体形式对预设规则进行设定。例如,预设规则可以是网络请求中包括目标数据所在的域名和/或目标获取请求相应的参数等,这里不进行限定。
则,在本申请实施例一些可能的实现方式中,步骤S102具体可以包括:
S1021:第一模块判断待选网络请求中是否包括期望域名和/或期望参数。若是,则执行步骤S1022。
在本申请实施例中,待选网络请求是第一模块抓取到的网路请求中的任意一个,第一模块可以逐一判断抓取到的网络请求中是否包括期望域名和/或期望参数,也可以并行判断多个网络请求中是否包括期望域名和/或期望参数,这里不进行限定。则,预设规则即为网络请求中包括期望域名和/或期望参数,期望域名和期望参数均与目标数据相关,例如期望域名可以是目标数据所在服务器的域名,期望参数可以是目标数据加密时所采用的相应参数等,实际应用中可以根据具体情况对期望域名和期望参数进行设置,不再一一列举。
在一个具体的例子中,下面举例示出了一种目标获取请求的部分内容,即码流地址的应用程序接口(application programming interface,api):
https://acs.adcd.com/h5/mtop.adcd.play.ups.appinfo.get/1.1/?jsv=2.4.11&appKey=24679788&t=1536567891295&sign=b2c670ca640baf3cc17ebdde0567a645&api=mtop.adcd.play.ups.appinfo.get&v=1.1&timeout=20000&YKPid=20160317PLF000211&YKLoginRequest=true&AntiFlood=true&AntiCreep=true&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data={"steal_params":"{\"ccode\":\"0502\",\"client_ip\":\"192.168.1.1\",\"utid\":\"/S3oE51mImgCAcpsDvDv/WUk\",\"client_ts\":1536567891,\"version\":\"0.5.76\",\"ckey\":\"110#ZmrkAUkfkAtTzfdhgUcUMuy2kMZXmTkQT++OFUK2hQ7/8xPH/kyzcMdyjwucSltV8MKQ3Kc2hnpfJKapaUKghJ6tcgRIzQjx81K12FimbToEbcrhyB3HiDR15/6Q6XYp28F3cYUijTkiLTLN6Wlis9kk4EKQs3gwP444GOsJaBUIDm2Lvth/ZL15hyaeDAkiskkkG9kiCTcOIQSjsLvwsTRU2FVzhZx5j/9kKOmwlUFwg/Ns2wHakT6L5ScoKB1cEvdWEWs8oTkRriyOKG63sAbar1GBBcHE4dP7kT//RjeBMaSicgxkx7g7QbHugybWgkXO0XmM8nEA6lUyZYmysSOUFdabLlMyEL3Ezq1uOIkksAcxCtwXSq/wFRdx0M5bDOsp6MnYYf6jbmb5klT0TfEFO+et2y3o5bGv5lGHPQszkvUJbBYTw7WU4zr/Vh8Phgilgq+b1MbZLybeWr+72lMMbdJ4wvjax1IKzAVsw9zahwln+ksFrx0mCP6tBVKCa03VO07X/2ser5riT8H9sBIbh7R3Pjswp+s4E6SJW2orMUUQF6aRmI5GgjTAaUe1mKG9I6LkPrLrwMxpCRQo2PP4hONd0v+BnmB=\"}","biz_params":"{\"vid\":\"XOTIzNDYyMzcy\",\"current_showid\":\"274380\"}","ad_params":"{\"site\":1,\"wintype\":\"interior\",\"p\":1,\"fu\":0,\"vs\":\"1.0\",\"rst\":\"mp4\",\"dq\":\"mp4\",\"os\":\"win\",\"osv\":\"\",\"d\":\"0\",\"bt\":\"pc\",\"aw\":\"w\",\"needbf\":1,\"atm\":\"\"}"}
则,相应的,预设规则可以是网络请求中包括“adcd.com”或者“adcd”(即期望域名),和/或,网络请求中包括“ccode”、“utid”和“ckey”中的任意一个或多个(即期望参数)。
S1022:第一模块将待选网络请求作为目标获取请求。
在本申请实施例中,当第一模块抓取到的某一个网络请求(即待选网络请求)中包括期望域名和/或期望参数,该待选网络请求即可作为目标获取请求用于获取目标数据的数据地址。
S103:第一模块利用目标获取请求获取目标数据。
在本申请实施例中,由于数据服务器在接收到目标获取请求后,会返回目标数据的数据地址至目标获取请求的发送方,则第一模块可以将目标获取请求再次发送至数据服务器,以使得数据服务器在接收到目标获取请求后,将目标数据的数据地址发送至第一模块。然后,第一模块即可利用数据服务器返回的数据地址获取目标数据,从而可以在不进行参数破解的情况下获取到目标数据,降低了数据获取的难度和复杂度。
在本申请实施例一些可能的实现方式中,步骤S103具体可以包括:
S1031:第一模块发送目标获取请求至数据服务器。
这里需要说明的是,在实际应用中,为了获取目标数据的数据地址,第一模块和第二模块向数据服务器发送的网络请求中一般不仅仅包括上述码流api(即请求的具体内容),还包括相应的请求头(headers)。因此,为了实现对目标数据数据地址的获取,第一模块在根据预设规则获取到码流api(即目标获取请求)后,可以同时提取到该码流api的headers,将码流api及其对应的headers拼成一个完整的网络请求,即可利用该完整的网络请求向数据服务器请求目标数据的数据地址。
下面举例示出了一种请求头(headers):
Accept:*/*
Accept-Encoding:gzip,deflate,sdch,br
Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
Connection:keep-alive
Cookie:__ysuid=1535721209217aFh;cna=hBbJE3fYO2ICAd8aag6qmDli;juid=01cm86hcrig29;seid=01cn1q781h25ip;_m_h5_tk=60a8bc5e6cdb0bd234789d1b2d6cd323_1536589563722;_m_h5_tk_enc=68b57aa6ed3d0961368f3aae5de5a3d3;yseid=1536585611137Q3A1EW;yseidcount=2;referhost=;seidtimeout=1536587415078;ypvid=1536585622769RLC9lX;ysestep=2;yseidtimeout=1536592822772;ycid=0;ystep=3;__ayvstp=5;__aysvstp=5;isg=BKCgGoE173WkCVNxpRFbDjzXca6yAYVYEXV6zRqxv7tNFUE_w7kLA1Nkqf0wpTxL;__ayft=1536585602384;__aysid=1536585602385WNX;__arpvid=1536586357329O1UIom-1536586357372;__ayscnt=1;__aypstp=3;__ayspstp=3
Host:acs.abcd.com
Referer:https://v.abcd.com/v_show/id_XOTIzNDYyMzcy==.html
User-Agent:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/56.0.2924.87Safari/537.36。
S1032:第一模块接收数据服务器对目标获取请求的应答。
可以理解的是,数据服务器对目标获取请求的应答携带了目标数据的数据地址。因此,第一模块可以根据该应答中携带的数据地址获取到目标数据,实现在不进行破解的情况下对目标数据的获取。
S1033:第一模块基于数据服务器对目标获取请求的应答,获取目标数据的数据地址。
S1034:第一模块利用目标数据的数据地址,获取目标数据。
这里需要说明的是,在实际应用中,本领域技术人员可以利用本申请实施例提供的数据获取方法批量的获取目标数据,提升数据获取的效率。多个目标数据的获取可以并行执行,可以串联执行,这里不进行限定。
在本申请实施例中,在第二模块向数据服务器请求目标数据时,第一模块抓取第二模块为获得目标数据向数据服务器发送的各个网络请求,再基于预设规则,从抓取到的网络请求中筛选出目标获取请求。数据服务器在接收到该目标获取请求时,会返回目标数据的数据地址至目标获取请求的发送方,以便目标获取请求的发送方利用该数据地址获取目标数据。第一模块在筛选出目标获取请求后,可以利用该目标获取请求获取目标数据,无需对加密规则进行破解,降低了数据获取的难度,减少了工作量。
上述内容详细介绍了第一模块具体如何利用第二模块发送至数据服务器的网络请求获取目标数据。但在具体实施时,第二模块一般需要利用与数据服务器对应的用户信息(例如相应网站的用户登录信息)才能使得数服务器返回目标数据的数据地址。为此,在本申请实施例一些可能的实现方式中,第一模块可以先将相应的用户登录信息发送至第二模块,以便第二模块利用该用户登录信息发送网络请求至数据服务器请求目标数据的数据地址。下面详细说明:
参见图3,该图为本申请实施例提供的另一种数据获取方法的流程示意图。相较于图1,该图提供了一种更加具体的数据获取方法。
在本申请实施例一些可能的实现方式中,图1所示的基础上,本申请实施例提供的数据获取方法,在步骤S101之前还可以包括:
S301:第一模块将目标数据的源url和用户登陆信息发送至第二模块。
在本申请实施例中,目标数据的源url是外部设备访问目标数据的url地址,例如当目标数据为视频数据时,目标数据的源url具体可以是视频url地址,如图2所示的例子。第一模块通过向第二模块发送源url即可确定待获取的目标数据。第二模块在接收到第一模块发送的目标数据的源url和用户登陆信息后,利用源url和用户登陆信息发送网络请求至数据服务器,并利用数据服务器对网络请求的应答获得目标数据。
在本申请实施例中,用户的登录信息指的是可以从该数据服务器获取到目标数据的用户的登录信息,该登录信息包括但不限于:用户账号和密码、用户登陆临时文件(如用户登录cookie)等。在一些例子中,登录信息还可以包括代理IP。
当用户的登录信息包括用户登陆临时文件时,第一模块可以预先利用可以从该数据服务器获取到目标数据的用户的账号和密码、或者利用现有的用户登陆临时文件向数据服务器发送登录请求,在成功登录后获取该用户登陆临时文件。
在一个具体的例子中,可以利用selinum工具模拟实际的用户登录操作,通过在网站上模拟账号和密码的输入,并点击相应的登录操作来实现用户的登录。在登录后,利用selinum的get_cookie方法可以自动获取用户登录cookie。获取的用户登录cookie可以如图4方框中的内容所示。
在实际应用中,用户登录cookie可能存在过期的情况,为了避免用户登陆临时文件过期导致目标数据无法获取的问题,在本申请实施例一些可能的实现方式中,当用户登陆信息包括用户登陆临时文件时,步骤S301之前还可以包括:
第一模块判断用户登陆临时文件是否有效;若否,则第一模块重新登录数据服务器获得有效的用户登陆临时文件。
在实际应用中,第一模块可以先利用该用户登陆临时文件构造一个发送至数据服务器的网络请求,根据数据服务器返回的应答来判断用户登陆临时文件是否有效。例如,当数据服务器返回无需重新登录的应答时,用户登陆临时文件有效;反之,当服务器端返回需重新登录的应答时,用户登陆临时文件无效。当用户登陆临时文件无效时,第一模块可以利用用户的账号密码重新登录服务器端实现对有效的用户登陆临时文件的获取。可以理解的是,有效的用户登陆临时文件可以参照步骤S301处的相关说明,这里不再赘述。
这里需要说明的是,在实际应用中,为了保证数据的安全性,数据服务器可以设置有反爬虫策略,同一用户多次登录将被限制。为此,在本申请实施例一些可能的实现方式中,可以通过限制同一用户登录信息(如用户登录cookie和/或代理IP)的方式,保证目标数据的可获取。
作为一个示例,可以利用令牌桶限流算法,对代理IP和用户登录cookie的使用次数和/或频率进行限制,当使用次数或频率超过一定阈值时使用新的代理IP和用户登录cookie进行操作。除此之外,在另一个例子中,还可以将请求头的用户代理(user-agent)加入限制。令牌桶限流算法是本领域的现有技术,这里不对其实现方式进行赘述。
则,在一些可能的实施例中,在步骤S301之前还可以包括:
第一模块判断用户登陆信息的使用频率是否超于预设阈值;若是,则第一模块更新用户登陆信息。
在实际应用中,预设阈值可以根据实际情况设置,这里不进行限定。可以理解的是,对用户登录信息的更新可以是将预先存储的其他的用户登录信息发送至第二模块,也可以是将其他的用户账号和密码发送至第二模块,还可以是将利用其他的用户账号和密码得到的用户登录临时文件发送至第二模块。
在本申请实施例中,第一模块可以通过向第二模块发送目标数据的源url和与数据服务器对应的用户登录信息,使得第二模块利用该源url和用户登录信息向数据服务器发送网络请求以实现对目标数据的获取。在一些可能的实现方式中,第一模块还可以通过对用户登陆信息的使用进行限制,保证目标数据的顺利获取,减少人工维护的成本,有利于数据的批量爬取。
基于上述实施例提供的数据获取方法,本申请实施例还提供了一种数据获取装置。
参见图5,该图为本申请实施例提供的一种数据获取装置的结构示意图。
本申请实施例提供的数据获取装置,应用于第一模块,第一模块配置于终端或服务器上;该装置包括:请求获取单元100、请求提取单元200和数据获取单元300。
请求获取单元100,用于在第二模块向数据服务器请求目标数据时,抓取第二模块向数据服务器发送的至少一个网络请求;
请求提取单元200,用于根据预设规则,从抓取到的网路请求中筛选出目标获取请求;数据服务器在接收到目标获取请求后返回目标数据的数据地址;
数据获取单元300,用于利用目标获取请求获取目标数据。
在本申请实施例一些可能的实现方式中,数据获取单元300,具体可以包括:请求发送子单元、应答接收子单元、地址获取子单元和数据获取子单元;
请求发送子单元,用于发送目标获取请求至数据服务器;
应答接收子单元,用于接收数据服务器对目标获取请求的应答;该应答携带目标数据的数据地址;
地址获取子单元,用于从数据服务器对目标获取请求的应答中获取目标数据的数据地址;
数据获取子单元,用于利用目标数据的数据地址,获取目标数据。
在本申请实施例一些可能的实现方式中,请求提取单元200,具体可以包括:判断子单元和请求获取子单元;
判断子单元,用于判断待选网络请求中是否包括期望域名和/或期望参数;待选网络请求是第一模块抓取到的网路请求中的任意一个;
请求获取子单元,用于当判断子单元判断待选网络请求中包括期望域名和/或期望参数时,基于将待选网络请求作为目标获取请求。
在本申请实施例一些可能的实现方式中,该装置还可以包括:发送单元;
发送单元,用于将目标数据的源url和用户登陆信息发送至第二模块,以使第二模块利用源url和用户登陆信息发送网络请求至数据服务器。
在本申请实施例一些可能的实现方式中,用户登陆信息具体可以包括用户登陆临时文件,则该装置还可以包括:第一判断单元和登录控制单元;
第一判断单元,用于判断用户登陆临时文件是否有效;
登录控制单元,用于当第一判断单元判断用户登陆临时文件无效时,重新登录服务器获得有效的用户登陆临时文件。
在本申请实施例一些可能的实现方式中,该装置还可以包括:第二判断单元和信息更新单元;
第二判断单元,用于判断用户登陆信息的使用频率是否超于预设阈值;
信息更新单元,用于当第二判断单元判断用户登陆信息的使用频率超于预设阈值时,更新用户登陆信息。
在本申请实施例中,在第二模块向数据服务器请求目标数据时,第一模块抓取第二模块为获得目标数据向数据服务器发送的各个网络请求,再基于预设规则,从抓取到的网络请求中筛选出目标获取请求。数据服务器在接收到该目标获取请求时,会返回目标数据的数据地址至目标获取请求的发送方,以便目标获取请求的发送方利用该数据地址获取目标数据。第一模块在筛选出目标获取请求后,可以利用该目标获取请求获取目标数据,无需对加密规则进行破解,降低了数据获取的难度,减少了工作量。在一些可能的实现方式中,第一模块还可以通过向第二模块发送目标数据的源url和与数据服务器对应的用户登录信息,使得第二模块利用该源url和用户登录信息向数据服务器发送网络请求以实现对目标数据的获取。在一些可能的实现方式中,第一模块还可以通过对用户登陆信息的使用进行限制,保证目标数据的顺利获取,减少人工维护的成本,有利于数据的批量爬取。
基于上述实施例提供的数据获取方法及装置,本申请实施例还提供了一种数据获取系统。
参见图6,该图为本申请实施例提供的一种数据获取系统的结构示意图。
本申请实施例提供的数据获取系统,包括:第一模块610和至少一个第二模块620;
第二模块620,用于发送网络请求至数据服务器630。
在本申请实施例中,第二模块620发送的网络请求用于从数据服务器630获取目标数据,该网络请求包括目标获取请求,数据服务器630在接收到目标获取请求后返回目标数据的数据地址。可以理解的是,第二模块620即上述方法实施例中的第二模块,对网络请求及第二模块620的说明可以参照上述方法实施例中的相关内容,这里不再赘述。
需要说明的是,当该数据获取系统中包括多个第二模块620时,各个第二模块620可以向相同的服务器630发送网络请求,也可以向不同的服务器630发送网络请求,这里不进行限定。
第一模块610,用于在第二模块620向数据服务器请求目标数据时,抓取第二模块620发送的网络请求,并根据预设规则从抓取到的网路请求中筛选出目标数据获取请求,并利用目标获取请求获取目标数据。
可以理解的是,第一模块610可部署有上述实施例提供的数据获取装置,以执行上述方法实施例所提供的数据获取方法中的任意一种,具体说明可以参照上述实施例中的相关内容,不再赘述。第一模块610可以部署于任意终端设备和服务器中,这里不进行限定。
作为一个示例,当目标数据为视频数据时,第二模块620具体可以是浏览器。第二模块620可以利用Splash或Pychrome实现。其中,Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级Web浏览器;Pychrome是一个基于google-chrome的python抓包工具,简单易用。Pychrome可以部署为有头或无头两种类型,有头Pychrome渲染效果较好但速度较慢,无头Pychrome渲染效果一般,但速度较快。
由于第二模块620的渲染过程会使用大量的内存,Splash长久运行存在内存泄露,而Pychrome的崩溃与异常往往也会造成内存的长久不释放。为此,在本申请实施例一些可能的实现方式中,第一模块610,还可以用于按照预设周期,重启第二模块620。第二模块610每间隔一定的时间(即预设周期)重启第二模块620可以保证系统的高可用。
在本申请实施例一些可能的实现方式中,为了保证系统的效率和高可用,当系统中包括的第二模块620为多个时,第一模块610,还可以用于基于负载均衡规则,向每个第二模块620发送各个目标数据的源url和用户登陆信息;
第二模块620,具体用于利用第一模块610发送的目标数据的源url和用户登陆信息,发送网络请求至对应的服务器630。
可以理解的是,在实际应用中,具体可以利用Nginx反向代理服务器及负载均衡。当将Splash或Pychrome做成实际的web服务时,Pychrome集群需要对nginx做特殊配置才能访问,
配置选项如下:
在本申请实施例中,在第二模块向数据服务器请求目标数据时,第一模块抓取第二模块为获得目标数据向数据服务器发送的各个网络请求,再基于预设规则,从抓取到的网络请求中筛选出目标获取请求。数据服务器在接收到该目标获取请求时,会返回目标数据的数据地址至目标获取请求的发送方,以便目标获取请求的发送方利用该数据地址获取目标数据。第一模块在筛选出目标获取请求后,可以利用该目标获取请求获取目标数据,无需对加密规则进行破解,降低了数据获取的难度,减少了工作量。在一些可能的实现方式中,第一模块还可以通过向第二模块发送目标数据的源url和与数据服务器对应的用户登录信息,使得第二模块利用该源url和用户登录信息向数据服务器发送网络请求以实现对目标数据的获取。在一些可能的实现方式中,第一模块还可以通过对用户登陆信息的使用进行限制,保证目标数据的顺利获取,减少人工维护的成本,有利于数据的批量爬取。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一种数据获取方法,其特征在于,应用于第一模块;所述方法包括:
在第二模块向数据服务器请求目标数据时,抓取所述第二模块向所述数据服务器发送的至少一个网络请求;
根据预设规则,从抓取到的网路请求中筛选出目标获取请求;所述数据服务器在接收到所述目标获取请求后返回所述目标数据的数据地址;
利用所述目标获取请求获取所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述利用所述目标获取请求获取所述目标数据,具体包括:
发送所述目标获取请求至所述数据服务器;
接收所述数据服务器对所述目标获取请求的应答;所述应答携带所述目标数据的数据地址;
从所述数据服务器对目标获取请求的应答中获取所述目标数据的数据地址;
利用所述目标数据的数据地址,获取所述目标数据。
3.根据权利要求1所述的方法,其特征在于,所述根据预设规则,从抓取到的网路请求中筛选出目标获取请求,具体包括:
判断待选网络请求中是否包括期望域名和/或期望参数;所述待选网络请求是所述抓取到的网路请求中的任意一个;
若是,则将所述待选网络请求作为所述目标获取请求。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述第二模块向数据服务器请求目标数据时,抓取所述第二模块向所述数据服务器发送的至少一个网络请求,之前还包括:
将所述目标数据的源url和用户登陆信息发送至所述第二模块,以使所述第二模块利用所述源url和所述用户登陆信息发送所述网络请求至所述数据服务器。
5.根据权利要求4所述的方法,其特征在于,所述用户登陆信息包括所述用户登陆临时文件,所述将所述目标数据的源url和用户登陆信息发送至所述第二模块,之前还包括:
判断所述用户登陆临时文件是否有效;
若否,则重新登录所述数据服务器获得有效的用户登陆临时文件。
6.根据权利要求4所述的方法,其特征在于,所述将所述目标数据的源url和用户登陆信息发送至所述第二模块,之前还包括:
判断所述用户登陆信息的使用频率是否超于预设阈值;
若是,则更新所述用户登陆信息。
7.一种数据获取装置,其特征在于,应用于第一模块;所述装置包括:请求获取单元、请求提取单元和数据获取单元;
所述请求获取单元,用于在第二模块向数据服务器请求目标数据时,抓取所述第二模块向所述数据服务器发送的至少一个网络请求;
所述请求提取单元,用于根据预设规则,从抓取到的网路请求中筛选出目标获取请求;所述数据服务器在接收到所述目标获取请求后返回所述目标数据的数据地址;
所述数据获取单元,用于利用所述目标获取请求获取所述目标数据。
8.一种数据获取系统,其特征在于,包括:第一模块和第二模块;
所述第二模块,用于发送网络请求至数据服务器;所述网络请求用于从所述数据服务器获取目标数据,所述网络请求包括目标获取请求,所述数据服务器在接收到所述目标获取请求后返回所述目标数据的数据地址;
所述第一模块,用于在所述第二模块向所述数据服务器请求所述目标数据时,抓取所述第二模块发送的网络请求,并根据预设规则从抓取到的网路请求中筛选出所述目标数据获取请求,利用所述目标获取请求获取所述目标数据。
9.根据权利要求8所述的系统,其特征在于,所述第二模块为多个;
所述第一模块,还用于基于负载均衡规则,向每个所述第二模块发送各个目标数据的源url和用户登陆信息;
所述第二模块,具体用于利用所述第一模块发送的目标数据的源url和用户登陆信息,发送网络请求至所述数据服务器。
10.根据权利要求8或9所述的系统,其特征在于,
所述第一模块,还用于按照预设周期,重启所述第二模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910646996.6A CN110347902A (zh) | 2019-07-17 | 2019-07-17 | 一种数据获取方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910646996.6A CN110347902A (zh) | 2019-07-17 | 2019-07-17 | 一种数据获取方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347902A true CN110347902A (zh) | 2019-10-18 |
Family
ID=68174900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910646996.6A Pending CN110347902A (zh) | 2019-07-17 | 2019-07-17 | 一种数据获取方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347902A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125489A (zh) * | 2019-12-25 | 2020-05-08 | 北京锐安科技有限公司 | 一种数据抓取方法、装置、设备及存储介质 |
CN112528332A (zh) * | 2020-12-15 | 2021-03-19 | 中国平安财产保险股份有限公司 | 数据获取方法、装置、电子设备及计算机存储介质 |
CN113934498A (zh) * | 2021-10-22 | 2022-01-14 | 盐城金堤科技有限公司 | 应用程序的数据获取方法、装置、设备及计算机存储介质 |
CN114915596A (zh) * | 2022-05-10 | 2022-08-16 | 北京奇艺世纪科技有限公司 | 数据发送方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022353A (zh) * | 2006-10-10 | 2007-08-22 | 鲍东山 | 定向流媒体广告插播系统 |
CN101163161A (zh) * | 2007-11-07 | 2008-04-16 | 福建星网锐捷网络有限公司 | 统一资源定位器地址过滤方法及中间传输设备 |
US20090247135A1 (en) * | 2008-04-01 | 2009-10-01 | Kabushiki Kaisha Toshiba | Information processing device |
CN102572604A (zh) * | 2012-02-28 | 2012-07-11 | 中国农业大学 | 基于p2p网络的视频点播系统及点播方法 |
-
2019
- 2019-07-17 CN CN201910646996.6A patent/CN110347902A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022353A (zh) * | 2006-10-10 | 2007-08-22 | 鲍东山 | 定向流媒体广告插播系统 |
CN101163161A (zh) * | 2007-11-07 | 2008-04-16 | 福建星网锐捷网络有限公司 | 统一资源定位器地址过滤方法及中间传输设备 |
US20090247135A1 (en) * | 2008-04-01 | 2009-10-01 | Kabushiki Kaisha Toshiba | Information processing device |
CN102572604A (zh) * | 2012-02-28 | 2012-07-11 | 中国农业大学 | 基于p2p网络的视频点播系统及点播方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125489A (zh) * | 2019-12-25 | 2020-05-08 | 北京锐安科技有限公司 | 一种数据抓取方法、装置、设备及存储介质 |
CN112528332A (zh) * | 2020-12-15 | 2021-03-19 | 中国平安财产保险股份有限公司 | 数据获取方法、装置、电子设备及计算机存储介质 |
CN113934498A (zh) * | 2021-10-22 | 2022-01-14 | 盐城金堤科技有限公司 | 应用程序的数据获取方法、装置、设备及计算机存储介质 |
CN114915596A (zh) * | 2022-05-10 | 2022-08-16 | 北京奇艺世纪科技有限公司 | 数据发送方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347902A (zh) | 一种数据获取方法、装置及系统 | |
US11122067B2 (en) | Methods for detecting and mitigating malicious network behavior and devices thereof | |
US10334016B2 (en) | System and method for context specific website optimization | |
CN108737467B (zh) | 一种服务器日志查看方法、装置和系统 | |
CN112134857B (zh) | 一种蜜罐系统多个节点绑定一个蜜罐的方法 | |
US20090024737A1 (en) | Website monitoring and cookie setting | |
US10630531B2 (en) | Propagating state information to network nodes | |
CN109729044B (zh) | 一种通用的互联网数据采集反反爬系统及方法 | |
CN102624920A (zh) | 一种通过代理服务器进行访问的方法及装置 | |
US10320784B1 (en) | Methods for utilizing fingerprinting to manage network security and devices thereof | |
CN118400381A (zh) | 用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法 | |
CN101163005B (zh) | 嵌入式web网管的客户端管理方法 | |
CN103457909B (zh) | 一种僵尸网络检测方法及装置 | |
CN105959313A (zh) | 一种防范http代理攻击的方法及装置 | |
RU2738337C1 (ru) | Система и способ обнаружения интеллектуальных ботов и защиты от них | |
CN110099129A (zh) | 一种数据传输方法以及设备 | |
CN107666473A (zh) | 一种攻击检测的方法及控制器 | |
Sahadevan et al. | An offline online strategy for IoT using MQTT | |
CN112039888B (zh) | 一种域名访问控制的接入方法、装置、设备及介质 | |
CN102571575A (zh) | 一种session 信息创建方法、装置和系统 | |
CN114666245A (zh) | B/S系统的IPv6单栈支持度确定方法及相关设备 | |
CN105681478A (zh) | 通过对网络资源调度提高网络爬虫抓取效率的方法和装置 | |
CN104462242B (zh) | 网页回流量统计方法及装置 | |
CN105490824A (zh) | 一种游戏服务器和群发消息过滤方法 | |
CN111427703A (zh) | 工业数据实时展示方法及系统 |
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 |
Application publication date: 20191018 |
|
RJ01 | Rejection of invention patent application after publication |