一种获取数据信息的方法及装置与流程

文档序号:12822224阅读:185来源:国知局
一种获取数据信息的方法及装置与流程

本发明涉及互联网技术领域,特别是涉及一种获取数据信息的方法及装置。



背景技术:

目前,数据信息越来越重要,终端可以通过爬虫技术访问并获取各大网站的数据信息。与此同时,各大网站的反爬虫技术应运而生。通常,获取目标网站数据信息的过程为:终端在访问目标网站时,批量下载目标网站的数据信息,并对这些数据信息进行分析,获取有效数据信息,转换、加载及保存有效数据信息,以提供给普通搜索用户进行查看。

通常情况下,访问目标网站的用户包括:普通搜索用户及爬虫用户。其中,普通搜索用户所在终端可以向服务器发送访问请求,服务器接收到该访问请求时,向普通搜索用户所在终端返回访问请求对应的数据信息,进而普通搜索用户所在终端在接收到数据信息后,向服务器发送对应的广播(pingback,通知目标网站收到访问请求对应的数据信息的反馈)。

爬虫用户所在终端也可以向服务器发送访问请求,在服务器接收到爬虫用户所在终端的访问请求后,向爬虫用户所在终端返回该访问请求对应的数据信息,同时,爬虫用户所在终端在接收到数据信息后,为了避免服务器识别到该终端的用户为爬虫用户,该终端可能不会发送对应的广播给服务器。

可见,普通搜索用户通过对应的终端访问服务器的次数以及向服务器发送广播的次数相差无几。爬虫用户通过对应的终端访问服务器的次数及向服务器发送广播的次数可能相差较大。从而,现有技术中,服务器可以统计并分析其所接收到的用户访问请求的次数及广播的次数,若访问请求的次数与广播的次数的差值比较大时,确定该用户采用爬虫技术正在获取目标网站的数据信息,进而封锁访问请求中携带的ip(internetprotocol,网络之间互连的协议)地址。

所以,在现有的获取目标网站的数据信息的方法中,服务器可以根据其接收到的访问请求的次数与广播的次数很容易识别出爬虫用户,进而,屏蔽爬虫用户的ip地址。



技术实现要素:

本发明实施例的目的在于提供一种获取数据信息的方法及装置,以解决现有技术中爬虫用户的ip地址被屏蔽的问题。具体技术方案如下:

第一方面,本发明实施例公开了一种获取数据信息的方法,应用于终端中的目标应用程序,所述方法包括:

启动所述目标应用程序,并获取所述目标应用程序的各预定元素信息;

生成所述各预定元素信息对应的第一访问请求,并通过攻击应用程序生成所述第一访问请求对应的第二访问请求;其中,所述第二访问请求满足所述攻击应用程序与服务器之间的通信协议;

通过所述攻击应用程序向服务器发送所述第二访问请求,以使所述服务器根据所述第二访问请求,向所述攻击应用程序返回对应的数据信息;

接收所述服务器通过所述攻击应用程序返回的所述数据信息;

根据所述数据信息,向所述服务器发送广播。

可选的,所述启动所述目标应用程序,并获取所述目标应用程序的各预定元素信息的步骤包括:

按预设周期,启动目标应用程序,并获取已存储的包含各预定元素信息的信息表;

根据所述信息表中包含的各预定元素信息的顺序,依次获取各预定元素信息。

可选的,所述生成所述各预定元素信息对应的第一访问请求,并通过攻击应用程序生成所述第一访问请求对应的第二访问请求的步骤包括:

生成包含所述各预定元素信息的第一访问请求;

根据所述攻击应用程序与所述目标应用程序之间的第一通信协议,对所述第一访问请求进行加密;

通过所述攻击应用程序根据所述第一通信协议,解密所述第一访问请求;

通过所述攻击应用程序根据所述攻击应用程序与所述服务器之间的第二通信协议,对所述解密后的第一访问请求进行加密,生成所述第二访问请求。

可选的,所述根据所述攻击应用程序与所述目标应用程序之间的第一通信协议,对所述第一访问请求进行加密的步骤包括:

根据所述第一通信协议中包括的第一公钥,对所述第一访问请求进行加密;

所述通过所述攻击应用程序根据所述第一通信协议,解密所述第一访问请求的步骤包括:

通过所述攻击应用程序根据所述第一通信协议中包括的第一私钥,解密所述第一访问请求;

所述通过所述攻击应用程序根据所述攻击应用程序与所述服务器之间的第二通信协议,对所述解密后的第一访问请求进行加密,生成所述第二访问请求的步骤包括:

通过所述攻击应用程序根据所述第二通信协议中包括的第二公钥,对所述解密后的第一访问请求进行加密,生成所述第二访问请求。

可选的,所述接收所述服务器通过所述攻击应用程序返回的所述数据信息的步骤包括:

接收所述服务器通过所述攻击应用程序返回的加密数据信息;其中,所述加密数据信息是所述攻击应用程序根据所述第一公钥加密的;

根据所述第一私钥,解密所述加密数据信息。

第二方面,本发明实施例还公开了一种获取数据信息的装置,应用于终端中的目标应用程序,所述装置包括:

启动单元,用于启动所述目标应用程序,并获取所述目标应用程序的各预定元素信息;

生成单元,用于生成所述各预定元素信息对应的第一访问请求,并通过攻击应用程序生成所述第一访问请求对应的第二访问请求;其中,所述第二访问请求满足所述攻击应用程序与服务器之间的通信协议;

发送单元,用于通过所述攻击应用程序向服务器发送所述第二访问请求,以使所述服务器根据所述第二访问请求,向所述攻击应用程序返回对应的数据信息;

接收单元,用于接收所述服务器通过所述攻击应用程序返回的所述数据信息;

广播单元,用于根据所述数据信息,向所述服务器发送广播。

可选的,所述启动单元包括:

启动子单元,用于按预设周期,启动目标应用程序,并获取已存储的包含各预定元素信息的信息表;

获取子单元,用于根据所述信息表中包含的各预定元素信息的顺序,依次获取各预定元素信息。

可选的,所述生成单元包括:

生成子单元,用于生成包含所述各预定元素信息的第一访问请求;

第一加密子单元,用于根据所述攻击应用程序与所述目标应用程序之间的第一通信协议,对所述第一访问请求进行加密;

第一解密子单元,用于通过所述攻击应用程序根据所述第一通信协议,解密所述第一访问请求;

第二加密子单元,用于通过所述攻击应用程序根据所述攻击应用程序与所述服务器之间的第二通信协议,对所述解密后的第一访问请求进行加密,生成所述第二访问请求。

可选的,所述第一加密子单元,具体用于根据所述第一通信协议中包括的第一公钥,对所述第一访问请求进行加密;

所述第一解密子单元,具体用于通过所述攻击应用程序根据所述第一通信协议中包括的第一私钥,解密所述第一访问请求;

所述第二加密子单元,具体用于通过所述攻击应用程序根据所述第二通信协议中包括的第二公钥,对所述解密后的第一访问请求进行加密,生成所述第二访问请求。

可选的,所述接收单元包括:

接收子单元,用于接收所述服务器通过所述攻击应用程序返回的加密数据信息;其中,所述加密数据信息是所述攻击应用程序根据所述第一公钥加密的;

第二解密子单元,用于根据所述第一私钥,解密所述加密数据信息。

本发明实施例提供的一种获取数据信息的方法及装置,终端中的目标应用程序启动时,其可以获取该目标应用程序的各预定元素信息,同时,目标应用程序可以生成各预定元素信息对应的第一访问请求,并通过攻击应用程序生成第一访问请求对应的第二访问请求,进一步,目标应用程序通过攻击应用程序向服务器发送第二访问请求,以使服务器根据第二访问请求,向攻击应用程序返回对应的数据信息,这样,目标应用程序在接收到服务器通过攻击应用程序返回的数据信息时,可以根据所接收到的数据信息,向服务器发送广播。

本方案中,终端中的目标应用程序在启动时,可以通过攻击应用程序向服务器发送访问请求,服务器针对接收到的访问请求,可以返回对应的数据信息给攻击应用程序,攻击应用程序可以分析并保存该数据信息,并向目标应用程序发送该数据信息,目标应用程序在接收到数据信息后,向服务器返回对应的广播。这样,攻击应用程序可以获取到服务器中的数据信息,并且,服务器接收到的访问请求的次数与广播的次数相同,从而能够避免服务器将访问请求中的ip地址屏蔽掉。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的获取数据信息的方法的一种流程图;

图2为本发明实施例提供的获取数据信息的装置的一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

下面首先对本发明实施例所提供的一种获取数据信息的方法进行介绍。

为了解决现有技术中爬虫用户的ip地址被屏蔽的技术问题,本发明实施例提供了一种获取数据信息的方法,应用于终端中的目标应用程序,如图1所示,该方法可以包括以下步骤:

s101,启动所述目标应用程序,并获取所述目标应用程序的各预定元素信息。

实际应用中,终端可以包括:智能手机、平板电脑,但不限于此。终端中可以包括多个应用程序,本发明实施例中,以终端中的一个应用程序(目标应用程序)为例,说明本发明实施例提供的获取数据信息的方法。

需要说明的是,本发明实施例中的获取数据信息的方法的执行主体可以为终端中的目标应用程序。其中,终端中可以包括:目标应用程序及攻击应用程序。另外,攻击应用程序可以运行在终端中,也可以运行在攻击服务器中,其中,攻击服务器可以没有集成在终端中。

本发明实施例中,攻击应用程序可以模拟用户的相关操作(例如,单击操作、双击操作及语音控制操作,但不限于此),周期性的向目标应用程序发送启动指令,目标应用程序在接收到攻击应用程序发送的启动指令后,启动运行该目标应用程序。

进一步,目标应用程序可以获取该目标应用程序中的预定元素信息。预定元素信息可以为用户在该目标应用程序中可以点击的全部或者部分图标(又称按钮)。例如,预定元素信息可以为头像图标、表情图片、背景图片等,但不限于此。其中,目标应用程序启动运行,并获取该目标应用程序的各预定元素信息的过程,可以采用现有的任一种方法,本发明实施例对此过程不进行赘述。

具体的,目标应用程序可以按预设周期接收攻击应用程序的启动指令,根据该启动指令,启动该目标应用程序。在目标应用程序启动后,该目标应用程序可以获取存储于该目标应用程序中的各预定元素信息的信息表。同时,目标应用程序根据各预定元素信息在信息表中的顺序,依次读取各预定元素信息。

例如,目标应用程序中存储100个元素信息,且100个元素信息在信息表的排序依次为:图标1、图标2、图标3……及图标100,则目标应用程序可以按照100个元素信息的排序,依次读取图标1、图标2、图片3……及图片100各元素信息。另外,目标应用程序还可以在100个元素信息中选择预定个数(预定个数为大于或等于1,且小于或等于100的正整数)的元素信息,并读取预定个数的元素信息。

s102,生成所述各预定元素信息对应的第一访问请求,并通过攻击应用程序生成所述第一访问请求对应的第二访问请求。

这里,第一访问请求满足目标应用程序与攻击应用程序之间的通信协议。第二访问请求满足攻击应用程序与服务器之间的通信协议。需要注意的是,第一访问请求和第二访问请求数据内容是相同的,且目标应用程序与攻击应用程序之间,以及攻击应用程序与服务器之间以https(hypertexttransferprotocoloversecuresocketlayer,基于安全套接层的超文本传输协议)协议进行通信,所以需要对第一访问请求和第二访问请求进行加密。

本发明实施例中,目标应用程序在获取各预定元素信息之后,可以针对各预定元素信息,生成各预定元素信息对应的第一访问请求。并且,目标应用程序可以将第一访问请求发送给攻击应用程序,进而,攻击应用程序生成该第一访问请求对应的第二访问请求。

具体的,目标应用程序生成各预定元素信息对应的第一访问请求,并通过攻击应用程序生成第一访问请求对应的第二访问请求的过程可以为:目标应用程序生成包含各预定元素信息的第一访问请求;进一步,目标应用程序根据攻击应用程序与目标应用程序之间的第一通信协议,对第一访问请求进行加密,将加密后的第一访问请求发送给攻击应用程序。这样,攻击应用程序接收到加密的第一访问请求后,可以根据第一通信协议,解密第一访问请求。当攻击应用程序对第一访问请求进行解密之后,攻击应用程序可以根据自身与服务器之间的第二通信协议,对解密后的第一访问请求进行加密,生成第二访问请求。

本发明实施例中,为了保证目标应用程序与攻击应用程序之间,以及攻击应用程序与服务器之间通信的安全性,分别对第一访问请求以及第二访问请求进行加密,从而保证数据传输的安全,并且确认各访问请求的真实性。

进一步,目标应用程序根据攻击应用程序与目标应用程序之间的第一通信协议,对第一访问请求进行加密的过程可以为:目标应用程序根据第一通信协议中包括的第一公钥,对第一访问请求进行加密。通常,公钥用来加密访问请求,私钥用来解密访问请求。这里,目标应用程序使用第一公钥对第一访问请求进行加密之后,将加密后的第一访问请求发送给攻击应用程序。

具体的,目标应用程序根据第一通信协议,通过攻击应用程序解密第一访问请求的过程可以为:在目标应用程序将加密后的第一访问请求发送给攻击应用程序之后,攻击应用程序可以根据第一通信协议中包括的第一私钥,对第一访问请求进行解密。

这样,攻击应用程序就可以通过查看第一访问请求,获知目标应用程序通过攻击应用程序转发给服务器的访问请求,而不被服务器发现攻击应用程序的存在。攻击应用程序可以查看了第一访问请求中的具体的数据内容,但是没有对该第一访问请求的数据内容进行修改。

具体的,攻击应用程序在接收到目标应用程序发送的第一访问请求,并且对该第一访问请求解密后,攻击应用程序可以根据第二通信协议中包括的第二公钥,对解密后的第一访问请求进行加密,生成该第一访问请求对应的第二访问请求。

本发明实施例中,在攻击应用程序接收到目标应用程序每一次发送的第一访问请求时,首先使用第一私钥对该第一访问请求进行解密,进而读取该第一访问请求的数据内容。攻击应用程序在向服务器发送第一访问请求之前,为了保证第一访问请求发送过程的安全性,攻击应用程序可以使用第二公钥对该第一访问请求进行加密。这里,将攻击应用程序使用第二公钥加密后的第一访问请求确定为第二访问请求。

第一访问请求与第二访问请求在数据内容上是一致的,本发明为了更好地说明目标应用程序与攻击应用程序,以及攻击应用程序与服务器之间的通信,将目标应用程序与攻击应用程序之间的访问请求确定为第一访问请求,以及将攻击应用程序与服务器之间访问请求确定为第二访问请求。其中,目标应用程序使用第一公钥对第一访问请求进行加密,攻击应用程序使用第一私钥对目标应用程序发送的第一访问请求进行解密。攻击应用程序在向服务器发送访问请求之前,使用第二公钥对第一访问请求进行加密,得到第二访问请求。

s103,通过所述攻击应用程序向服务器发送所述第二访问请求,以使所述服务器根据所述第二访问请求,向所述攻击应用程序返回对应的数据信息。

本发明实施例中,攻击应用程序可以发送第二访问请求给服务器。服务器在接收到该第二访问请求时,可以使用第二私钥解密该第二访问请求,进而服务器读取解密后的第二访问请求中携带的数据信息。并且通过分析第二访问请求中携带的数据信息,服务器可以向攻击应用程序返回第二访问请求对应的数据信息。

需要注意的是,服务器向攻击应用程序返回的数据信息为:服务器使用第二公钥对数据信息进行加密的数据信息。这样,在攻击应用程序接收到服务器返回的数据信息后,攻击应用程序可以使用第二私钥解密服务器返回的加密的数据信息。在攻击应用程序解密服务器返回的加密的数据信息后,攻击应用程序可以根据预设规则,选择对应的数据信息,并对所选择的数据信息进行转换、加载,并且保存至攻击应用程序对应的磁盘。

其中,攻击应用程序可以采用现有技术中任一种技术,对密后获得数据信息进行分析,获得所需要的数据信息,并保存数据信息至目标应用程序对应的磁盘。之后,攻击应用程序可以使用第一公钥对数据信息进行加密,并发送给目标应用程序。

s104,接收所述服务器通过所述攻击应用程序返回的所述数据信息。

本发明实施例中,在攻击应用程序使用第一公钥对数据信息进行加密,并发送给目标应用程序之后,目标应用程序可以接收攻击应用程序发送的加密的数据信息。并且,目标应用程序可以使用第一私钥解密攻击应用程序加密的数据信息。

s105,根据所述数据信息,向所述服务器发送广播。

本发明实施例中,在目标应用程序接收到攻击应用程序发送的数据信息之后,目标应用程序可以使用第一私钥解密攻击应用程序返回的数据信息。进而目标应用程序可以向攻击应用程序返回该目标应用程序接收的数据信息对应的广播,攻击应用程序将该广播发送给服务器。

需要注意的是,目标应用程序可以使用第一公钥对广播进行加密后,再发送给攻击应用程序。攻击应用程序使用第一私钥对该广播进行解密,并使用第二公钥对该广播进行加密后,将加密的广播发送给服务器。

需要强调的是,目标应用程序每次接收到攻击应用程序发送的数据信息时,可以针对每次接收的数据信息返回对应的广播给攻击应用程序,这样,服务器可以接收到目标应用程序针对每次获取的数据信息发送的对应的广播。

本发明实施例中,终端中的目标应用程序在启动时,可以通过攻击应用程序向服务器发送访问请求,服务器针对接收到的访问请求,可以返回对应的数据信息给攻击应用程序,攻击应用程序可以分析并保存该数据信息,并向目标应用程序发送该数据信息,目标应用程序在接收到数据信息后,向服务器返回对应的广播。这样,攻击应用程序可以获取到服务器中的数据信息,并且,服务器接收到的访问请求的次数与广播的次数相同,从而能够避免服务器将访问请求中的ip地址屏蔽掉。

相对于上述方法实施例,本发明实施例还提供了一种获取数据信息的装置200,应用于终端中的目标应用程序,如图2所示,所述装置200包括:

启动单元210,用于启动所述目标应用程序,并获取所述目标应用程序的各预定元素信息;

生成单元220,用于生成所述各预定元素信息对应的第一访问请求,并通过攻击应用程序生成所述第一访问请求对应的第二访问请求;其中,所述第二访问请求满足所述攻击应用程序与服务器之间的通信协议;

发送单元230,用于通过所述攻击应用程序向服务器发送所述第二访问请求,以使所述服务器根据所述第二访问请求,向所述攻击应用程序返回对应的数据信息;

接收单元240,用于接收所述服务器通过所述攻击应用程序返回的所述数据信息;

广播单元250,用于根据所述数据信息,向所述服务器发送广播。

本发明实施例中,终端中的目标应用程序在启动时,可以通过攻击应用程序向服务器发送访问请求,服务器针对接收到的访问请求,可以返回对应的数据信息给攻击应用程序,攻击应用程序可以分析并保存该数据信息,并向目标应用程序发送该数据信息,目标应用程序在接收到数据信息后,向服务器返回对应的广播。这样,攻击应用程序可以获取到服务器中的数据信息,并且,服务器接收到的访问请求的次数与广播的次数相同,从而能够避免服务器将访问请求中的ip地址屏蔽掉。

可选的,所述启动单元210包括:

启动子单元(图中未示出),用于按预设周期,启动目标应用程序,并获取已存储的包含各预定元素信息的信息表;

获取子单元(图中未示出),用于根据所述信息表中包含的各预定元素信息的顺序,依次获取各预定元素信息。

可选的,所述生成单元220包括:

生成子单元(图中未示出),用于生成包含所述各预定元素信息的第一访问请求;

第一加密子单元(图中未示出),用于根据所述攻击应用程序与所述目标应用程序之间的第一通信协议,对所述第一访问请求进行加密;

第一解密子单元(图中未示出),用于通过所述攻击应用程序根据所述第一通信协议,解密所述第一访问请求;

第二加密子单元(图中未示出),用于通过所述攻击应用程序根据所述攻击应用程序与所述服务器之间的第二通信协议,对所述解密后的第一访问请求进行加密,生成所述第二访问请求。

可选的,所述第一加密子单元(图中未示出),具体用于根据所述第一通信协议中包括的第一公钥,对所述第一访问请求进行加密;

所述第一解密子单元(图中未示出),具体用于通过所述攻击应用程序根据所述第一通信协议中包括的第一私钥,解密所述第一访问请求;

所述第二加密子单元(图中未示出),具体用于通过所述攻击应用程序根据所述第二通信协议中包括的第二公钥,对所述解密后的第一访问请求进行加密,生成所述第二访问请求。

可选的,所述接收单元240包括:

接收子单元(图中未示出),用于接收所述服务器通过所述攻击应用程序返回的加密数据信息;其中,所述加密数据信息是所述攻击应用程序根据所述第一公钥加密的;

第二解密子单元(图中未示出),用于根据所述第一私钥,解密所述加密数据信息。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1