深度链接获取方法和装置制造方法及图纸

技术编号:15910802 阅读:63 留言:0更新日期:2017-08-01 22:30
本发明专利技术涉及一种深度链接获取方法,该方法包括:获取目标页面的地址,根据所述目标页面的地址下载所述目标页面并获取适用于所述目标页面的配置文件,根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量,根据提取出的所述目标数据、函数和变量获取目标深度链接。该方法只需要根据配置规则提取相关数据就可以获取到目标深度链接,不仅减少了成本而且提高了获取的效率。此外,还提出了一种深度链接获取装置。

Method and device for acquiring depth link

The invention relates to a deep link acquisition method, the method includes: obtaining the target page address, according to the target address of the page to download the target page and get suitable for the target page configuration file, extract the required target data associated with the target depth of links and extract the target data analytic function and variables from the target page according to the configuration files in the configuration rules, according to the target data, extract the functions and variables to get the depth of target link. The method only needs to extract relevant data according to the rule of configuration, and then it can get the target depth link. It not only reduces the cost, but also improves the efficiency of the acquisition. In addition, a deep link acquisition device is also proposed.

【技术实现步骤摘要】
深度链接获取方法和装置
本专利技术涉及计算机技术,特别是涉及一种深度链接获取方法和装置。
技术介绍
随着当今互联网的飞速发展,各种网络信息的内容日益丰富。作为网络信息主要承载形式的万维网被应用了大量复杂技术例如AdobeFlash、Ajax、连接加密等来呈现内容,以提高用户体验和安全性。由于大量内容是网页加载后由JavaScript动态生成的,导致一些深度链接难以抓取和利用。传统的网络爬虫在抓取网页数据时,只能抓取具有特殊关键字符的数据,但很多网站并不会将所有的内容都直接输出到一个页面中,部分数据需要通过JavaScript处理才能得到,还有些内容可能需要用户触发才会被加载。所以传统的爬虫无法抓取深度链接的网页数据。而目前解决这些限制的一般做法需要运行一套完整的浏览器环境以获取这些动态内容。由于完整的浏览器环境需要较大的资源开销并且速度较慢,会导致深度链接的抓取成本高而且效率低。
技术实现思路
基于此,有必要针对深度链接抓取成本高、效率低的问题,提供一种开销比较低且效率比较高的深度链接获取方法和装置。一种深度链接获取方法,所述方法包括:获取目标页面的地址;根据所述目标页面的地址下载所述目标页面并获取适用于所述目标页面的配置文件;根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量;根据提取出的所述目标数据、函数和变量获取目标深度链接。在其中一个实施例中,所述根据提取出的所述目标数据、函数和变量获取目标深度链接的步骤包括:获取所述配置文件中的触发代码;将所述触发代码、解析所述目标数据所述需要的函数和变量进行组合得到组合代码;调用运行引擎运行所述组合代码,根据运行的结果解析所述目标数据得到所述目标深度链接。在其中一个实施例中,所述根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量的步骤包括:根据所述配置文件中预设的字段从所述目标页面中提取与目标深度链接相关的目标数据;根据所述配置文件中预设的正则表达式从所述目标页面中提取解析所述目标数据所需要的第一函数;通过语法分析获取所述第一函数的依赖关系;根据所述依赖关系提取所述第一函数依赖的第二函数和变量;所述根据提取出的所述目标数据、函数和变量获取目标深度链接的步骤包括:根据提取出的所述目标数据、第一函数、第二函数和变量获取目标深度链接。在其中一个实施例中,根据所述依赖关系提取所述第一函数依赖的第二函数和变量的步骤包括:根据所述依赖关系从所述目标页面的源代码中以及从与所述目标深度链接相关联的外部页面的源代码中获取所述第一函数依赖的第二函数和变量。在其中一个实施例中,在根据所述依赖关系提取所述第一函数依赖的第二函数和变量的步骤之前还包括:检测缓存内是否存在与所述目标深度链接相关联的外部页面的源代码;若不存在,则获取与所述目标深度链接相关联的外部页面的源代码,将获取到的所述外部页面的源代码存入所述缓存内。一种深度链接获取装置,所述装置包括:地址获取模块,用于获取目标页面的地址;下载模块,用于根据所述目标页面的地址下载所述目标页面;配置文件获取模块,用于根据所述目标页面的地址获取适用于所述目标页面的配置文件;提取模块,用于根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量;深度链接获取模块,用于根据提取出的所述目标数据、函数和变量获取目标深度链接。在其中一个实施例中,所述深度链接获取模块包括:触发代码获取模块,用于获取所述配置文件中的触发代码;组合模块,用于将所述触发代码、解析所述目标数据的函数和变量进行组合得到组合代码;调用模块,用于调用运行引擎运行所述组合代码,根据运行的结果解析所述目标数据得到所述目标深度链接。在其中一个实施例中,所述提取模块包括:目标数据提取模块,用于根据所述配置文件中预设的字段从所述目标页面中提取与目标深度链接相关的目标数据;第一函数提取模块,用于根据所述配置文件中预设的正则表达式从所述目标页面中提取解析所述目标数据所需要的第一函数;分析模块,用于通过语法分析获取所述第一函数的依赖关系;第二函数提取模块,用于根据所述依赖关系提取所述第一函数依赖的第二函数和变量;所述深度链接获取模块还用于根据提取出的所述目标数据、第一函数、第二函数和变量获取目标深度链接。在其中一个实施例中,所述第二函数提取模块还用于根据所述依赖关系从所述目标页面的源代码中以及从与所述目标深度链接相关联的外部页面的源代码中获取所述第一函数依赖的第二函数和变量。在其中一个实施例中,所述装置还包括:检测模块,用于检测缓存内是否存在与所述目标深度链接相关联的外部页面的源代码;存入模块,用于若缓存内不存在所述外部页面的源代码则获取与所述目标深度链接相关联的外部页面的源代码,将获取到的所述外部页面的源代码存入所述缓存内。上述深度链接获取方法和装置,通过获取目标页面的地址,根据目标页面的地址下载所述目标页面并获取适用于目标页面的配置文件,根据配置文件中的配置规则从目标页面中提取与目标深度链接相关的目标数据以及提取解析该目标数据所需要的函数和变量,根据提取出的目标数据、函数和变量获取目标深度链接。上述深度链接获取方法通过预先设置针对不同页面的配置文件,然后根据配置文件来提取需要用到的目标数据、以及解析该目标数据所需要的函数和变量就可以获取目标深度链接,该方法不需要运行完整的浏览器环境,只需要根据配置规则提取相关数据即可,所以用很小的开销就可以快速提取网页中的深度链接,因此,不但降低了抓取深度链接的成本,而且提高了获取的效率。进一步的,当网页结构改变的时候仍可以采用该方法,即该方法具有一定的兼容性。附图说明图1为一个实施例中深度链接获取方法的流程图;图2为一个实施例中根据提取出的目标数据、函数和变量获取目标深度链接的方法流程图;图3为一个实施例中根据配置文件中的配置规则提取目标数据、函数和变量的方法流程图;图4为一个实施例中深度链接获取装置的结构框图;图5为一个实施例中深度链接获取模块的结构框图;图6为一个实施例中提取模块的结构框图;图7为另一个实施例中深度链接获取装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,提出了一种深度链接获取方法,该方法既可应用于终端中,也可以应用于服务器中,包括:步骤102,获取目标页面的地址。具体的,首先获取待抓取深度链接的目标页面的地址,后续可以根据该目标页面的地址获取该目标页面的内容。深度链接是指绕过被链接网站首页链接到分页的链接方式,可以简单的理解为网页上的超链接。比如,可以是直接指向视频源的链接。出于安全方面的考虑,往往会对深度链接进行加工处理,比如,为深度链接添加一个签名信息,只有校验签名信息成功才可以访问到深度链接指向的内容,而签名信息需要依靠JavaScript计算得到,所以深度链接不能通过传统的网页爬虫来抓取。步骤104,根据目标页面的地址下载目标页面并获取适用于目标页面本文档来自技高网...
深度链接获取方法和装置

【技术保护点】
一种深度链接获取方法,所述方法包括:获取目标页面的地址;根据所述目标页面的地址下载所述目标页面并获取适用于所述目标页面的配置文件;根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量;根据提取出的所述目标数据、函数和变量获取目标深度链接。

【技术特征摘要】
1.一种深度链接获取方法,所述方法包括:获取目标页面的地址;根据所述目标页面的地址下载所述目标页面并获取适用于所述目标页面的配置文件;根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量;根据提取出的所述目标数据、函数和变量获取目标深度链接。2.根据权利要求1所述的方法,其特征在于,所述根据提取出的所述目标数据、函数和变量获取目标深度链接的步骤包括:获取所述配置文件中的触发代码;将所述触发代码、解析所述目标数据所述需要的函数和变量进行组合得到组合代码;调用运行引擎运行所述组合代码,根据运行的结果解析所述目标数据得到所述目标深度链接。3.根据权利要求1所述的方法,其特征在于,所述根据所述配置文件中的配置规则从所述目标页面中提取与目标深度链接相关的目标数据以及提取解析所述目标数据所需要的函数和变量的步骤包括:根据所述配置文件中预设的字段从所述目标页面中提取与目标深度链接相关的目标数据;根据所述配置文件中预设的正则表达式从所述目标页面中提取解析所述目标数据所需要的第一函数;通过语法分析获取所述第一函数的依赖关系;根据所述依赖关系提取所述第一函数依赖的第二函数和变量;所述根据提取出的所述目标数据、函数和变量获取目标深度链接的步骤包括:根据提取出的所述目标数据、第一函数、第二函数和变量获取目标深度链接。4.根据权利要求3所述的方法,其特征在于,根据所述依赖关系提取所述第一函数依赖的第二函数和变量的步骤包括:根据所述依赖关系从所述目标页面的源代码中以及从与所述目标深度链接相关联的外部页面的源代码中获取所述第一函数依赖的第二函数和变量。5.根据权利要求4所述的方法,其特征在于,在根据所述依赖关系提取所述第一函数依赖的第二函数和变量的步骤之前还包括:检测缓存内是否存在与所述目标深度链接相关联的外部页面的源代码;若不存在,则获取与所述目标深度链接相关联的外部页面的源代码,将获取到的所述外部页面的源代码存入所述缓存内。6...

【专利技术属性】
技术研发人员:黄冬
申请(专利权)人:深圳大宇无限科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1