CN109150984B - 获取数据资源的方法和装置 - Google Patents
获取数据资源的方法和装置 Download PDFInfo
- Publication number
- CN109150984B CN109150984B CN201810841913.4A CN201810841913A CN109150984B CN 109150984 B CN109150984 B CN 109150984B CN 201810841913 A CN201810841913 A CN 201810841913A CN 109150984 B CN109150984 B CN 109150984B
- Authority
- CN
- China
- Prior art keywords
- data
- extensible hypertext
- hypertext transfer
- traffic data
- request
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开获取数据资源的方法和装置,其中,方法包括:通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过超文本传输协议HTTP协议获取所述数据资源更新系统的数据的方式;截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据;从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。本发明的技术方案可实现对流量数据的批量下载。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及获取数据资源的方法和装置。
背景技术
随着互联网的发展,用户可以通过互联网进行购物、浏览视频、浏览小说、浏览图片等。互联网中有各种各样的信息和资源可以供人们浏览,用户也可以从互联网上下载图片、文档、视频等。其中,用户可以通过浏览器浏览各种资源,当用户浏览到某些有用或感兴趣的资源时,用户可以在浏览器上对这些资源进行下载。
目前,有一些网站为网站上的部分资源提供了批量下载的功能,但是不是对所有的资源都提供了批量下载的功能,对于这些无法批量下载的资源,如果用户想要下载全部的资源,则需要依次点选这些资源从而实现全部下载,过程较麻烦。
发明内容
本发明实施例提供获取数据资源的方法和装置,解决批量下载数据的过程比较麻烦的问题。
第一方面,提供一种获取数据资源的方法,包括:
通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求(extensiblemarkup language hyper text transfer protocol request,XMLHttpRequest),所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过超文本传输协议(hyper text transfer protocol,HTTP)请求获取所述数据资源更新系统的数据的方式;
截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据;
从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
本发明实施例中,网络爬虫以模拟浏览器的方式获取数据资源更新系统的数据,网络爬虫可以获取数据资源更新系统中的所有的网页数据,网络爬虫的XMLHttpRequest对象提供了对超文本传输(hyper text transfer protocol,HTTP)协议的完全访问,包括向服务器发出post请求、head请求以及get请求的能力,通过截取XMLHttpRequest请求以及XMLHttpRequest请求对应的返回数据可以获取到网络爬虫爬取数据资源更新系统的过程中爬取到的所有流量数据,即获取到浏览器可以加载的该数据资源更新系统的所有网页数据,然后根据下载目的从交互流量数据中获取与下载目的对应的流量数据,由于获取到的是浏览器可以加载的该数据资源更新系统的所有网页数据,因此,可实现对流量数据的批量下载。
结合第一方面,在一种可能的实现方式中,所述从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地包括:对所述交互流量数据进行分类,以确定所述交互数据流量中的各个流量数据所属的数据资源类别;根据数据资源类别与下载目的的关联关系确定与所述第一下载目的对应的第一数据资源类别;将所述交互流量数据中属于所述第一数据资源类别的流量数据保存到本地。通过对交互流量数据进行分类可以确定交互流量数据中的各个流量数据所属的数据资源类别,从而可以将属于与下载目的对应的数据资源类别的交互流量数据保存到本地。
结合第一方面,在一种可能的实现方式中,所述对所述交互流量数据进行分类包括:根据所述交互流量数据的格式对所述交互流量数据进行分类。由于不同的数据有不同的格式,因此可以根据交互流量数据的格式对获取到的流量数据进行分类以确定各个流量数据的数据资源类别。
结合第一方面,在一种可能的实现方式中,所述对所述交互流量数据进行分类包括:将所述交互流量数据作为预设的流量数据分类模型的输入对所述交互流量数据进行分类。通过将交互流量数据送入流量数据分类模型中可以确定交互流量数据中的各个流量数据的数据资源类别。
结合第一方面,在一种可能的实现方式中,所述对所述交互流量数据进行分类之前还包括:确定多个流量数据以及所述多个流量数据所属的数据资源类别;将所述多个流量数据以及所述多个流量数据所属的数据资源类别作为训练样本,基于分类算法对流量数据分类模型进行训练得到最逼近所述训练样本的流量数据分类模型;将所述最逼近所述训练样本的流量数据分类模型确定为所述预设的流量数据分类模型。通过预先建立流量数据分类模型,可以使用流量数据分类模型对交互流量数据中的流量数据进行分类。
结合第一方面,在一种可能的实现方式中,所述截取所述可扩展超文本传输请求对应以及所述可扩展超文本传输请求对应的返回数据包括:备份所述网络爬虫的可扩展超文本传输对象下的所有方法和所有属性;通过方法重写覆盖所述可扩展超文本传输对象得到所述可扩展超文本传输对象对应的可扩展超文本传输对象代理;通过所述可扩展超文本传输对象代理截取所述可扩展超文本传输请求对应以及所述可扩展超文本传输请求对应的返回数据。通过对网络爬虫的XMLHttpRequest对象进行方法重写,可以对网络爬虫中的各个方法进行代理从而实现勾(hook)住网络爬虫中的各个方法,进而可以获取到XMLHttpRequest请求对应的交互流量数据。
结合第一方面,在一种可能的实现方式中,所述通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫为通过模拟目标方式获取所述数据资源更新系统的数据的网络爬虫,所述目标方式为浏览器获取所述数据资源更新系统的数据的方式包括:在本地创建所述网络爬虫的可扩展超文本传输对象,并为所述可扩展超文本传输对象注册回调方法;设置与所述数据资源更新系统对应的后台服务器交互的参数和向所述后台服务器发送的流量数据;启动与所述后台服务器的通信交互。通过在本地创建XMLHttpRequest对象并设置好其与资源数据更新系统对应的后台服务器交互的参数与数据,从而使得浏览器爬虫具备模拟浏览器与数据资源更新系统的后台服务器进行异步传输的能力。
第二方面,提供了一种获取数据资源的装置,其包括:
请求触发模块,用于通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过HTTP请求获取所述数据资源更新系统的数据的方式;
流量截取模块,用于截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据;
保存模块,用于从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
第三方面,提供另一种获取数据资源的装置,包括处理器、存储器以及通信接口,所述处理器、存储器和通信接口相互连接,其中,所述通信接口用于接收或发送数据,所述存储器用于存储获取数据资源的装置执行上述方法的应用程序代码,所述处理器被配置用于执行上述第一方面的方法。
第四方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例中,通过截取XMLHttpRequest请求以及该XMLHttpRequest请求对应的返回数据可以获取到异步加载和传输的流量数据,网络爬虫可以获取数据资源更新系统统中的所有的网页数据,因此,截取网络爬虫爬取到的流量数据可实现对流量数据资源的批量下载。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是发明实施例提供的一种网站安全检测方法的流程示意图;
图2是本发明实施例提供的另一种获取数据资源的方法的流程示意图;
图3是本发明实施例提供的交互流量数据的示意图;
图4是本发明实施例提供的又一种获取数据资源的方法的流程示意图;
图5是本发明实施例提供的一种获取数据资源的装置的组成结构示意图;
图6是本发明实施例提供的另一种获取数据资源的装置的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于理解本发明实施例的技术方案,首先对发明实施例涉及的XMLHttpRequest对象进行介绍。
XMLHttpRequest对象是XMLHttp组件(浏览器中的组件)的对象,通过这个对象,Ajax可以像桌面应用程序一样只与服务器进行数据层的交换,而不必每次都刷新界面,也不必将数据处理的工作都交给服务器来做,这样可以减轻服务器负担,同时加快响应速度,缩短用户等待页面显示的时间。在Ajax应用程序中,XMLHttpRequest对象负责将用户信息异步通信地发送到服务器端,并接收服务器响应信息和数据。XMLHttpRequest对象可以向服务器发起异步HTTP请求,监听服务器状态,并在服务器完成数据响应处理之后接收服务器端返回的信息数据。
接下来介绍发明实施例的技术方案。
参见图1,图1是发明实施例提供的一种网站安全检测方法的流程示意图,如图所示,该方法包括:
S101,通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过HTTP请求获取所述数据资源更新系统的数据的方式。
本发明实施例中,数据资源更新系统可以为一个提供数据资源下载服务的网站系统,数据资源可以为文档、图片、视频、音频等资源。
本发明实施例中,网络爬虫可以模拟浏览器行为,像浏览器一样实现与服务器之间的数据交互的网络爬虫,网络爬虫可以从数据资源更新系统的一个初始的URL开始,通过模拟浏览器与数据资源更新系统对应的后台服务器之间交互的方式依次爬取数据资源更新系统中的各个URL,从而得到数据更新资源系统中的网页的内容。XMLHttpRequest请求是指网络爬虫的XMLHttpRequest对象模拟浏览器的XMLHttpRequest对象向服务器发起的异步HTTP请求。本发明实施例中,通过网络爬虫触发的XMLHttpRequest请求包括该网络爬虫从数据资源更新系统的一个URL开始在爬取网站系统中的各个URL对应的网页的数据的整个过程中向数据资源更新系统对应的后台服务器发起的每一次异步HTTP请求。
这里,通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求是指模拟真实的浏览器与数据资源更新系统对应的后台服务器进行多次异步传输和加载的过程,其中,数据资源更新系统对应的后台服务器用于管理和维护数据资源更新系统的各种资源,数据资源更新系统对应的后台服务器还用于向浏览器提供该网站系统的资源。模拟真实的浏览器与数据资源更新系统对应的后台服务器进行多次异步传输和加载的过程具体可以为:首先,在本地创建网络爬虫的XMLHttpRequeset对象,并为该XMLHttpRequeset对象注册回调方法;然后,设置网络爬虫与数据资源更新系统对应的后台服务器交互的相应参数以及向数据资源更新系统对应的后台服务器发送的数据;最后,启动网络爬虫与数据资源更新系统对应的后台服务器之间的通信交互。可选地,在启动网络爬虫与网站系统对应的后台服务器之间的通信交互的过程中,还可以模拟用户对网络爬虫的一系列操作以持续触发对数据资源更新系统的XMLHttpRequest请求,具体可包括模拟用户登录、模拟点击网页上的链接,下拉网页,等等。
S102,截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据。
本发明实施例中,截取XMLHttpRequest请求以及XMLHttpRequest请求对应的返回数据是指:截取通过网络爬虫模拟的浏览器与数据资源更新系统对应的后台服务器进行异步传输和加载的过程中的目标请求和目标数据。目标请求为模拟浏览器向数据资源更新系统对应的后台服务器发送的一个或多个请求,目标请求可以为访问请求,如访问网站系统的某一页面的请求;目标请求也可以为参数提交请求,如提交通过参数获取页面获取到的参数的请求;目标请求也可以为参数查询请求、参数修改请求,等等,不限于这里的描述。目标数据为网站系统对应的后台服务器根据该目标请求返回的数据,例如,目标请求为访问请求,则目标数据为该访问请求对应的页面的页面数据;又如,目标请求为参数提交请求,则目标数据为响应该参数提交请求的数据。
在一种具体的实现方式中,可以通过在网络爬虫中对XMLHttpRequest对象设置代理的方式截取该XMLHttpRequest请求以及该XMLHttpRequest请求对应的返回数据,其具体可以为:
第一步,备份网络爬虫的XMLHttpRequest对象下的所有方法和所有属性。
本发明实施例中,XMLHttpRequest对象下的所有方法包括abort()方法、getAllResponseHeaders()方法、getResponseHeader()方法、open()方法、send()方法以及setRequestHeader()方法。其中,abort()方法用于取消当前所发出的请求;getAllResponseHeaders()方法用于获取所有的HTTP头信息;getResponseHeader()方法用于获取一个指定的HTTP头信息;open()方法用于创建一个HTTP请求,并指定请求的模式,如get请求或post请求;send()方法用于将创建的请求发送给网站系统对应的服务器,并接收相应的回应信息,即接收返回数据;setRequestHeader()方法用于设置一个指定请求的HTTP头信息。
XMLHttpRequest对象下的所有属性包括readyState属性、Onreadysatatechage属性、responeText属性、responseXML属性、status属性以及statusText属性。其中,readyState属性的值为0~4,用于指示一次交互过程的进度情况,readyState的值为0表示初始化状态,XMLHttpRequest对象已创建或已被abort()方法重置;readyState的值为1表示open()方法已经被调用,但是send()方法还未被调用,即请求还没有被发送;readyState的值为2表示send()方法已经被调用,HTTP请求已经发送到网站系统对应的后台服务器,还未收到响应;readyState的值为3表示所有响应头部都已经接收到,响应已经开始接收但未完成;readyState的值为表示HTTP响应已经完全接收。responseText属性用于指示当前接收到的后台服务器接收到的响应数据,如果还没有接收到数据的话,responseText属性为空字符串。如果readyState小于3,responseText属性为空字符串。当readyState为3时,responseText属性为当前已经接收的响应数据。如果readyState为4,responseText属性属性保存了完整的响应数据。responseXML属性用于表示对请求的响应,其被解析为XML。status属性为网站系统对应的后台服务器返回的HTTP状态代码,如200表示请求成功,而404表示“Not Found”错误。statusText属性返回当前请求的响应行状态。当状态为200的时候它是“OK”,当状态为404的时候它是“Not Found”。
具体实现中,可以将XMLHttpRequest对象下的所有方法和所有属性保存到全局对象中以完成对XMLHttpRequest对象下的所有方法和所有属性的备份。
第二步,通过方法重写覆盖XMLHttpRequest对象得到XMLHttpRequest对象对应的XMLHttpRequest对象代理。
这里,通过方法重写覆盖XMLHttpRequest对象得到XMLHttpRequest对象对应的XMLHttpReques对象代理的具体方式为:创建保存在全局对象中的XMLHttpRequest对象对应的XMLHttpRequest实例,遍历该XMLHttpRequest实例的所有属性和所有方法,为该XMLHttpRequest实例的各个方法生成其对应的代理方法,为XMLHttpRequest实例的各个属性生成其对应的代理属性。
第三步,通过XMLHttpRequest对象代理截取该XMLHttpRequest请求以及该XMLHttpRequest请求对应的返回数据。
具体实现中,当网络爬虫通过XMLHttpRequest对象发起XMLHttpRequest请求时,各个代理方法拦截模拟浏览器发起的XMLHttpRequest请求,然后对该XMLHttpRequest请求进行放行以使该XMLHttpRequest请求可以发送至网站系统对应的后台服务器,当该网站系统对应的后台服务器返回XMLHttpRequest请求对应的返回数据时,代理方法拦截该返回数据,然后再对该返回数据进行放行以使该返回数据可以传输至网络爬虫。
S103,从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
这里,第一下载目的可以为预先设置的目的,也可以使用户指定的下载目的。其中,在第一下载目的为用户指定的下载目的的情况下,可以向用户显示多个下载目的选项,根据用户对这多个下载目的选择的选择确定第一下载目的。第一下载目的用于表示需要在该数据资源更新系统中下载的流量数据的内容或者类别。例如,第一下载目的为图片下载,则表示需要在该数据更新系统中下载的流量数据为图片数据;又如,第一下载目的为视频下载,则表示需要在该数据更新系统中下载的流量数据为视频数据;又如,第一下载目的为文档下载,则表示需要在该数据更新系统中下载的流量数据为文档数据;又如,第一下载目的为音频下载,则表示需要在该数据更新系统中下载的流量数据为音频数据;又如,第一下载目的为URL下载,则表示需要在该数据更新系统中要下载的流量数据为URL数据;不限于这里的描述。
具体实现中,可以从该交互流量数据中筛选出第一下载目的所表示的需要下载的流量数据,然后将筛选得到的流量数据保存到本地。
本发明实施例中,网络爬虫为一种以模拟浏览器的方式获取网站系统的数据的网络爬虫,网络爬虫可以获取数据资源更新系统中的所有的网页的数据,网络爬虫的XMLHttpRequest对象提供了对超文本传输(hyper text transferprotocol,HTTP)协议的完全访问,包括向服务器发出post请求、head请求以及get请求的能力,通过截取XMLHttpRequest请求以及XMLHttpRequest请求对应的返回数据可以获取到网络爬虫在与服务器交互的过程中的所有流量数据,即可以获取到浏览器可以加载的该数据更新系统的所有网页数据,然后从交互流量数据中筛选并保存第一下载目的所表示的需要下载的流量数据,由于获取到的是浏览器可以加载的该数据资源更新系统的所有网页数据,因此,可实现对流量数据的批量下载。
在一些可能的场景中,可以对获取到的浏览器交互流量数据的交互数据进行分类,以确定交互流量数据中的各个流量数据所属的数据资源类别,然后根据数据资源类别与下载目的之间的关联关系确定与第一下载目的对应的第一数据资源类别,将交互流量数据中的属于第一数据资源类别的流量数据下载到本地。
示例性地,数据资源类别与下载目的的关联关系可以如表1所示:
数据资源类别 | 下载目的 |
图片 | 图片下载 |
音频 | 音频下载 |
视频 | 视频下载 |
文档 | 文档下载 |
URL | URL |
… | … |
表1
其中,数据资源类别描述了与下载目的对应的流量数据所属的类别。例如,下载目的为图片下载,则与下载目的对应的流量数据所属的类别为图片,则将交互流量数据中属于图片这一类别的流量数据保存到本地;又如,下载目的为视频下载,则与下载目的对应的流量数据所属的类别为视频,则将交互流量数据中属于视频这一类别的流量数据保存到本地。
本发明实施例中,可以有两种方式对交互流量数据进行分分类。以下介绍采用不同的方式对交互流量数据进行分类以将属于与第一下载目的对应的数据资源类别的数据流量下载到本地的具体实现方式。参见图2-图3。
参见图2,图2是本发明实施例提供的另一种获取数据资源的方法的流程示意图,如图所示,该方法包括:
S201,通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过HTTP请求获取所述数据资源更新系统的数据的方式。
S202,截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据。
这里,步骤S201~S202的具体实现方式可参见图1对应的实施例中步骤S101~S102的描述,此处不再赘述。
S203,根据所述交互流量数据的格式对所述交互流量数据进行分类。
这里,不同类别的流量数据,其对应的不同的格式。具体实现中,可以将后缀格式为BMP、JPG、PNG、TIFF、GIF、PCX、TGA、EXIF、FPX、SVG、CDR、PCD、DXF、UFO、EPS、AI、RAW、WMF、WEBP等格式的交互流量数据划分为属于图片类别的流量数据;将后缀格式为AU、AIFF、WQF、VQF、CD、APE、MP3、WMA、MIDI、WAV等格式的交互流量数据划分为属于音频类别的流量数据;将后缀格式为RM、RMVB、MTV、WMV、AVI、3GP、DMV、FLV、DAT等格式的交互流量数据划分为属于视频类别的流量数据;将后缀格式为html的交互流量数据划分为属于URL类别的流量数据;将格式为word、word、txt、excel、pdf等格式的交互流量数据划分为属于文档类别的流量数据。
举例来进行说明,例如获取到的部分交互流量数据如图3所示,则可以将图3中圈出的后缀为png的流量数划分为属于图片类别的交互流量数据,将图3中圈出的后缀为html的流量数据划分为属于URL类别的交互流量数据。
S204,根据数据资源类别与下载目的的关联关系确定与所述第一下载目的对应的第一数据资源类别。
S205,将所述交互流量数据中属于所述第一数据资源类别的流量数据保存到本地。
这里,步骤S204~S205的具体实现方式可参考前述描述,此处不再赘述。
本发明实施例中,通过根据交互流量数据的格式对通过浏览器爬虫组件爬取到的数据资源更新系统的网页的数据进行分类分别确定各个流量数据所属的数据资源类别,分类方式简单,需要的计算少,可以实现对交互流量数据的快速分类,从而可以快速地将属于下载目的对应的资源类别的数据保存到本地。
参见图4,图4是本发明实施例提供的又一种获取数据资源的方法的流程示意图,如图所示,该方法包括:
S301,通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过HTTP请求获取所述数据资源更新系统的数据的方式。
S302,截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据。
这里,步骤S301~S302的具体实现方式可参见图1对应的实施例中步骤S101~S102的描述,此处不再赘述。
S303,将所述交互流量数据作为预设的流量数据分类模型的输入对所述交互流量数据进行分类。
这里,流量数据分类模型为基于分类算法训练得到的用于对流量数据进行分类的分类器。该流量数据分类模型可以为基于K近邻(K nearest neighbor,KNN)算法训练得到的分类器,也可以为朴素贝叶斯(naive Bayes,NB)算法训练得到的分类器,也可以是基于决策树(decision tree,DT)算法训练得到的分类器,也可以是基于逻辑回归(logisticregression,LR)算法训练得到的分类器,也可以是基于支持向量机(support vectormachine,SVM)算法训练得到的分类器,本发明实施例不做限制。
具体实现中,可以将交互流量数据中的各个流量数据依次送入该流量数据分类模型中,根据该流量数据分类模型的输出确定各个交互流量数据所属的数据资源类别。
例如,将流量数据“http://www.pingan.com”,将流量数据送入该流量数据分类模型中,该流量数据分类模型的输出为“URL”,则确定该流量数据所属的数据资源类别为URL。
在可选实施方式中,在将交互流量数据作为预设的流量数据分类模型的输入对交互流量数据进行分类之前,还可以利用实现已经分好类别的多个数据以及该多个数据所属的数据资源类别对流量数据分类模型进行训练,以得到最接近于实际情况的流量数据分类模型,在将所述交互流量数据作为预设的流量数据分类模型的输入对所述交互流量数据进行分类之前还包括:确定多个流量数据以及所述多个流量数据所属的数据资源类别;将所述多个流量数据以及所述多个流量数据所属的数据资源类别作为训练样本,基于分类算法对流量数据分类模型进行训练得到最逼近所述训练样本的流量数据分类模型;将所述最逼近所述训练样本的流量数据分类模型确定为所述预设的流量数据分类模型。
其中,分类算法可以为KNN算法、NB算法、DT算法、LR算法或SVM算法中的任意一种算法。
S304,根据数据资源类别与下载目的的关联关系确定与所述第一下载目的对应的第一数据资源类别。
S305,将所述交互流量数据中属于所述第一数据资源类别的流量数据保存到本地。
这里,步骤S304~S305的具体实现方式可参考前述描述,此处不再赘述。
本发明实施例中,通过将通过浏览器爬虫组件爬取到的数据资源更新系统的网页的数据作为预先训练好的流量数据分类模型的输入,根据该流量数据的输出可确定各个流量数据所属的数据资源类别,基于分类模型对流量数据进行分类可以实现对交互流量数据的准确分类,从而可以准确地将属于下载目的对应的资源类别的数据保存到本地。
上面介绍了发明实施例的方法,下面介绍发明实施例的装置。
参见图5,图5是本发明实施例提供的一种获取数据资源的装置的组成结构示意图,该装置40包括:
请求触发模块401,用于通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过HTTP请求获取所述数据资源更新系统的数据的方式;
流量截取模块402,用于截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据;
保存模块403,用于从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
在一种可能的设计中,所述保存模块403具体用于:
对所述交互流量数据进行分类,以确定所述交互数据流量中的各个流量数据对应的数据资源类别;
根据数据资源类别与下载目的的关联关系确定与所述第一下载目的对应的第一数据资源类别;
将所述交互流量数据中属于所述第一数据资源类别的流量数据保存到本地。
在一种可能的设计中,所述保存模块403具体用于:
根据所述交互流量数据的格式对所述交互流量数据进行分类。
在一种可能的设计中,所述保存模块403具体用于:
将所述交互流量数据作为预设的流量数据分类模型的输入对所述交互流量数据进行分类。
在一种可能的设计中,所述装置40还包括:
确定模块404,用于确定多个流量数据以及所述多个流量数据所属的数据资源类别;
训练模块405,用于将所述多个流量数据以及所述多个流量数据所属的数据资源类别作为训练样本,基于分类算法对流量数据分类模型进行训练得到最逼近所述训练样本的流量数据分类模型;
模型确定模块406,用于将所述最逼近所述训练样本的流量数据分类模型确定为所述预设的流量数据分类模型。
在一种可能的设计中,所述流量截取模块402具体用于:
备份所述网络爬虫的可扩展超文本传输对象下的所有方法和所有属性;
通过方法重写覆盖所述可扩展超文本传输对象得到所述可扩展超文本传输对象对应的可扩展超文本传输对象代理;
通过所述可扩展超文本传输对象代理截取所述可扩展超文本传输请求对应以及所述可扩展超文本传输请求对应的返回数据。
在一种可能的设计中,所述请求触发模块401具体用于:
在本地创建所述网络爬虫的可扩展超文本传输对象,并为所述可扩展超文本传输对象注册回调方法;
设置与所述数据资源更新系统对应的后台服务器交互的参数和向所述后台服务器发送的流量数据;
启动与所述后台服务器的通信交互。
需要说明的是,图5对应的实施例中未提及的内容可参见方法实施例的描述,这里不再赘述。
本发明实施例中,网络爬虫以模拟浏览器的方式获取网站系统的数据的网络爬虫,网络爬虫可以获取数据资源更新系统中的所有的网页的数据,网络爬虫的XMLHttpRequest对象提供了对超文本传输(hyper text transfer protocol,HTTP)协议的完全访问,包括向服务器发出post请求、head请求以及get请求的能力,获取数据资源的装置通过截取XMLHttpRequest请求以及XMLHttpRequest请求对应的返回数据可以获取到网络爬虫在与服务器交互的过程中的所有流量数据,即获取数据资源的装置可以获取到浏览器可以加载的该数据更新系统的所有的网页数据,然后从交互流量数据中筛选并保存第一下载目的所表示的需要下载的流量数据,由于获取数据资源的装置获取到的是浏览器可以加载的所有的网页数据,因此,可实现对流量数据的批量下载。
参见图6,图6是本发明实施例提供的另一种获取数据资源的装置的组成结构示意图,该装置50包括处理器501、存储器502以及通信接口503。处理器501连接到存储器502和通信接口503,例如处理器501可以通过总线连接到存储器502和通信接口503。
处理器501被配置为支持所述获取数据资源的装置执行图1-图4所述的网站安全检测方法中相应的功能。该处理器501可以是中央处理器(CentralProcessing Unit,CPU),网络处理器(Network Processor,NP),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(Application-Specific IntegratedCircuit,ASIC),可编程逻辑器件(Programmable Logic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD),现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。
存储器502存储器用于存储程序代码等。存储器502可以包括易失性存储器(Volatile Memory,VM),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如只读存储器(Read-OnlyMemory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器602还可以包括上述种类的存储器的组合。本发明实施例中,存储器502用于存储获取数据资源的程序、交互流量数据等。
所述通信接口503用于发送或接收数据。
处理器501可以调用所述程序代码以执行以下操作:
通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据的网络爬虫,所述目标方式为浏览器通过HTTP请求获取所述数据资源更新系统的数据的方式;
截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据;
从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
需要说明的是,各个操作的实现还可以对应参照图1-图4所示的方法实施例的相应描述;所述处理器501还可以与通信接口503配合执行上述方法实施例中的其他操作。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法,所述计算机可以为上述提到的获取数据资源的装置的一部分。例如为上述的处理器501。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种获取数据资源的方法,其特征在于,包括:
通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫通过模拟目标方式获取所述数据资源更新系统的数据,所述目标方式为浏览器通过超文本传输协议HTTP获取所述数据资源更新系统的数据的方式,其中,所述数据资源更新系统为用于提供数据资源下载服务的网站系统;
将所述网络爬虫的可扩展超文本传输对象下的所有方法和所有属性保存到全局对象中,以备份所述网络爬虫的可扩展超文本传输对象下的所有方法和所有属性;
创建保存在所述全局对象中的所述可扩展超文本传输对象对应的可扩展超文本传输实例,遍历所述可扩展超文本传输实例的所有属性和所有方法,为所述可扩展超文本传输实例的各个方法生成其对应的代理方法,为所述可扩展超文本传输实例的各个属性生成其对应的代理属性,以得到所述可扩展超文本传输对象对应的可扩展超文本传输对象代理;
通过所述可扩展超文本传输对象代理截取所述可扩展超文本传输请求以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求和所述返回数据,所述返回数据包括网页数据;
从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
2.根据权利要求1所述的方法,其特征在于,所述从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地包括:
对所述交互流量数据进行分类,以确定所述交互数据流量中的各个流量数据所属的数据资源类别;
根据数据资源类别与下载目的的关联关系确定与所述第一下载目的对应的第一数据资源类别;
将所述交互流量数据中属于所述第一数据资源类别的流量数据保存到本地。
3.根据权利要求2所述的方法,其特征在于,所述对所述交互流量数据进行分类包括:
根据所述交互流量数据的格式对所述交互流量数据进行分类。
4.根据权利要求2所述的方法,其特征在于,所述对所述交互流量数据进行分类包括:
将所述交互流量数据作为预设的流量数据分类模型的输入对所述交互流量数据进行分类。
5.根据权利要求4所述的方法,其特征在于,所述对所述交互流量数据进行分类之前还包括:
确定多个流量数据以及所述多个流量数据所属的数据资源类别;
将所述多个流量数据以及所述多个流量数据所属的数据资源类别作为训练样本,基于分类算法对流量数据分类模型进行训练得到最逼近所述训练样本的流量数据分类模型;
将所述最逼近所述训练样本的流量数据分类模型确定为所述预设的流量数据分类模型。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求包括:
在本地创建所述网络爬虫的可扩展超文本传输对象,并为所述可扩展超文本传输对象注册回调方法;
设置与所述数据资源更新系统对应的后台服务器交互的参数和向所述后台服务器发送的流量数据;
启动与所述后台服务器的通信交互。
7.一种获取数据资源的装置,其特征在于,包括:
请求触发模块,用于通过网络爬虫触发对数据资源更新系统的可扩展超文本传输请求,所述网络爬虫为通过模拟目标方式获取所述数据资源更新系统的数据的网络爬虫,所述目标方式为浏览器获取所述数据资源更新系统的数据的方式,其中,所述数据资源更新系统为用于提供数据资源下载服务的网站系统;
流量截取模块,用于将所述网络爬虫的可扩展超文本传输对象下的所有方法和所有属性保存到全局对象中,以备份所述网络爬虫的可扩展超文本传输对象下的所有方法和所有属性;创建保存在所述全局对象中的所述可扩展超文本传输对象对应的可扩展超文本传输实例,遍历所述可扩展超文本传输实例的所有属性和所有方法,为所述可扩展超文本传输实例的各个方法生成其对应的代理方法,为所述可扩展超文本传输实例的各个属性生成其对应的代理属性,以得到所述可扩展超文本传输对象对应的可扩展超文本传输对象代理;通过所述可扩展超文本传输对象代理截取所述可扩展超文本传输请求对应以及所述可扩展超文本传输请求对应的返回数据,以获取所述可扩展超文本传输请求对应的交互流量数据,所述交互流量数据包括所述可扩展超文本传输请求中的数据和所述返回数据,所述返回数据包括网页数据;
保存模块,用于从所述交互流量数据中获取与第一下载目的对应的流量数据保存到本地。
8.一种获取数据资源的装置,包括处理器、存储器以及通信接口,所述处理器、存储器和通信接口相互连接,其中,所述通信接口用于传输数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如权利要求1-6任一项所述的方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810841913.4A CN109150984B (zh) | 2018-07-27 | 2018-07-27 | 获取数据资源的方法和装置 |
PCT/CN2018/107635 WO2020019476A1 (zh) | 2018-07-27 | 2018-09-26 | 获取数据资源的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810841913.4A CN109150984B (zh) | 2018-07-27 | 2018-07-27 | 获取数据资源的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109150984A CN109150984A (zh) | 2019-01-04 |
CN109150984B true CN109150984B (zh) | 2021-11-02 |
Family
ID=64798213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810841913.4A Active CN109150984B (zh) | 2018-07-27 | 2018-07-27 | 获取数据资源的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109150984B (zh) |
WO (1) | WO2020019476A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860512B (zh) * | 2021-01-29 | 2022-07-15 | 平安国际智慧城市科技股份有限公司 | 接口监控的优化方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848116A (zh) * | 2010-04-21 | 2010-09-29 | 中国海洋大学 | 一种简单快捷自动的Web服务器压力测试方法 |
CN102184227A (zh) * | 2011-05-10 | 2011-09-14 | 北京邮电大学 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
CN102254027A (zh) * | 2011-07-29 | 2011-11-23 | 四川长虹电器股份有限公司 | 批量获取网页内容的方法 |
CN104601522A (zh) * | 2013-10-30 | 2015-05-06 | 中国移动通信集团北京有限公司 | 移动客户端与业务系统交互的实现方法、装置及系统 |
CN106650610A (zh) * | 2016-11-02 | 2017-05-10 | 厦门中控生物识别信息技术有限公司 | 一种人脸表情数据收集方法及装置 |
CN106997298A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种应用资源获取方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190561A1 (en) * | 2002-06-19 | 2006-08-24 | Watchfire Corporation | Method and system for obtaining script related information for website crawling |
US20100153539A1 (en) * | 2008-12-15 | 2010-06-17 | Gregory Thomas Zarroli | Algorithm for classification of browser links |
CN101515300B (zh) * | 2009-04-02 | 2011-07-20 | 阿里巴巴集团控股有限公司 | 一种Ajax网页内容的抓取方法及系统 |
WO2014085959A1 (zh) * | 2012-12-03 | 2014-06-12 | 华为技术有限公司 | 批量文件传输方法及设备 |
CN105045887B (zh) * | 2015-07-24 | 2018-06-22 | 苏州工业园区迪锐信信息科技有限责任公司 | 混合模式跨域数据交互的系统及其方法 |
CN105426549B (zh) * | 2015-12-29 | 2019-03-26 | 北京金山安全软件有限公司 | 一种读取网页资源的方法、装置及电子设备 |
CN106657228A (zh) * | 2016-09-27 | 2017-05-10 | 山东浪潮云服务信息科技有限公司 | 一种利用云端进行并发采集的爬虫实现方法 |
-
2018
- 2018-07-27 CN CN201810841913.4A patent/CN109150984B/zh active Active
- 2018-09-26 WO PCT/CN2018/107635 patent/WO2020019476A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848116A (zh) * | 2010-04-21 | 2010-09-29 | 中国海洋大学 | 一种简单快捷自动的Web服务器压力测试方法 |
CN102184227A (zh) * | 2011-05-10 | 2011-09-14 | 北京邮电大学 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
CN102254027A (zh) * | 2011-07-29 | 2011-11-23 | 四川长虹电器股份有限公司 | 批量获取网页内容的方法 |
CN104601522A (zh) * | 2013-10-30 | 2015-05-06 | 中国移动通信集团北京有限公司 | 移动客户端与业务系统交互的实现方法、装置及系统 |
CN106997298A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种应用资源获取方法及装置 |
CN106650610A (zh) * | 2016-11-02 | 2017-05-10 | 厦门中控生物识别信息技术有限公司 | 一种人脸表情数据收集方法及装置 |
Non-Patent Citations (6)
Title |
---|
python爬虫--爬取某网站电影下载地址;三九杂家;《https://www.cnblogs.com/tommy007/p/8505059.html》;20180304;全文 * |
基于web的食品微生物数据共享平台的设计与实现;陈桥等;《科技创新导报》;20121121(第33期);全文 * |
张成奇.支持Ajax的Deep Web爬虫设计与实现.《中国优秀硕士学位论文全文数据库信息科技辑》.2010, * |
支持Ajax的Deep Web爬虫设计与实现;张成奇;《中国优秀硕士学位论文全文数据库信息科技辑》;20101031;第1-3章 * |
支持AJAX的互联网搜索引擎爬虫设计与实现;罗兵;《中国优秀硕士学位论文全文数据库信息科技辑》;20070228;第2-4章 * |
爬虫-批量获取图片;yu_jianchi;《https://www.cnblogs.com/luoqingyu/p/6441270.html》;20170225;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109150984A (zh) | 2019-01-04 |
WO2020019476A1 (zh) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11470180B2 (en) | Method and system to pre-fetch data in a network | |
US11019179B2 (en) | Access to network content | |
US9342615B2 (en) | Reducing redirects | |
WO2016173200A1 (zh) | 用于检测恶意网址的方法和系统 | |
CN106911693B (zh) | 用于检测网页内容劫持的方法、装置和终端设备 | |
US10182046B1 (en) | Detecting a network crawler | |
US11842142B2 (en) | Systems and methods for co-browsing | |
CN112559927B (zh) | 一种网页加载方法及装置 | |
CA2948907A1 (en) | Methods and systems for web content generation | |
US9361168B1 (en) | Accessing resources across a network boundary | |
US10565385B1 (en) | Substitute web content generation for detection and avoidance of automated agent interaction | |
US20230018387A1 (en) | Dynamic web page classification in web data collection | |
US11868422B2 (en) | Dynamic link preview generation | |
US9104664B1 (en) | Access to search results | |
US12021732B1 (en) | Assistant for automatic generation of server load test scripts | |
EP4055797A1 (en) | Web application component migration to a cloud computing system | |
CN109150984B (zh) | 获取数据资源的方法和装置 | |
TW202222056A (zh) | 用於實時分析虛擬伺服器記錄的電腦實施系統以及方法 | |
US11822447B2 (en) | Methods and servers for storing data associated with users and digital items of a recommendation system | |
US10290022B1 (en) | Targeting content based on user characteristics | |
US11288336B2 (en) | Systems and methods for providing content items in situations involving suboptimal network conditions | |
US10795791B2 (en) | State-tracked testing across network boundaries | |
US10977238B2 (en) | Validity map-based tracking of user data updates | |
US20130104034A1 (en) | System and method of providing off-network access to network content | |
WO2015154678A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |