链接地址确定方法、装置、计算机可读存储介质及设备与流程

文档序号:24930504发布日期:2021-05-04 11:19阅读:128来源:国知局
链接地址确定方法、装置、计算机可读存储介质及设备与流程

本公开涉及计算机技术领域,具体而言,涉及一种链接地址确定方法、链接地址确定装置、计算机可读存储介质及电子设备。



背景技术:

网络爬虫又称网络蜘蛛、网络蚂蚁或网络机器人等,是一种在网络上根据事先给定的规则自动爬行以抓取网页信息的程序或者脚本。当人们需要从大量的网页中收集特定的网页内容链接时,可以使用爬虫程序通过预设规则筛选得到所需的特定网页内容链接。但是,上述的通过预设规则对每个网页进行判定的方式会使得确定特定网页内容链接的效率较低。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开的目的在于提供一种链接地址确定方法、链接地址确定装置、计算机可读存储介质及电子设备,在一定程度上克服确定特定网页内容链接的效率较低的问题,提升确定网页内容链接的效率。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的第一方面,提供一种链接地址确定方法,包括:

获取第一网页代码,并根据第一网页代码获取第二网页代码;

比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码,其中,第一差异代码和第二差异代码均用于表示第一网页与第二网页的不同;

确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息;

从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

在本公开的一种示例性实施例中,获取第一网页代码,并根据第一网页代码获取第二网页代码,包括:

根据预设网页链接地址加载第一网页并存储第一网页代码;

根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址;

加载与网页链接地址对应的第二网页,以获取第二网页代码。

在本公开的一种示例性实施例中,根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址,包括:

根据第一网页代码构建与第一网页对应的第一节点树形结构,通过第一节点树形结构中各节点之间的逻辑关系确定用于加载第二网页的网页链接地址。

在本公开的一种示例性实施例中,比对第一网页代码与第二网页代码的方式为:

根据第二网页代码构建与第二网页对应的第二节点树形结构;

通过循环递归的方式比对第一节点树形结构和第二节点树形结构。

在本公开的一种示例性实施例中,确定第一网页代码中各链接地址对应的坐标信息,包括:

根据预设的映射关系确定第一网页代码中各链接地址分别对应的第一网页中的元素;

确定各元素在第一网页中的坐标信息;其中,坐标信息用于表示元素在第一网页中的位置。

在本公开的一种示例性实施例中,预置条件包括:将坐标信息中横坐标相同的数量最多的坐标信息确定为目标坐标信息,或者,将坐标信息中纵坐标相同的数量最多的坐标信息确定为目标坐标信息。

在本公开的一种示例性实施例中,该链接地址确定方法还可以包括以下步骤:

抓取目标链接地址对应的页面内容并存储。

根据本公开的第二方面,提供一种链接地址确定装置,包括网页代码获取单元、差异比对单元、坐标确定单元以及链接地址确定单元,其中:

网页代码获取单元,用于获取第一网页代码,并根据第一网页代码获取第二网页代码;

差异比对单元,用于比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码,其中,第一差异代码和第二差异代码均用于表示第一网页与第二网页的不同;

坐标确定单元,用于确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息;

链接地址确定单元,用于从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

在本公开的一种示例性实施例中,网页代码获取单元获取第一网页代码,并根据第一网页代码获取第二网页代码的方式具体可以为:

网页代码获取单元根据预设网页链接地址加载第一网页并存储第一网页代码;

网页代码获取单元根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址;

网页代码获取单元加载与网页链接地址对应的第二网页,以获取第二网页代码。

在本公开的一种示例性实施例中,网页代码获取单元根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址的方式具体可以为:

网页代码获取单元根据第一网页代码构建与第一网页对应的第一节点树形结构,通过第一节点树形结构中各节点之间的逻辑关系确定用于加载第二网页的网页链接地址。

在本公开的一种示例性实施例中,差异比对单元比对第一网页代码与第二网页代码的方式具体可以为:

差异比对单元根据第二网页代码构建与第二网页对应的第二节点树形结构;

差异比对单元通过循环递归的方式比对第一节点树形结构和第二节点树形结构。

在本公开的一种示例性实施例中,坐标确定单元确定第一网页代码中各链接地址对应的坐标信息的方式具体可以为:

坐标确定单元根据预设的映射关系确定第一网页代码中各链接地址分别对应的第一网页中的元素;

坐标确定单元确定各元素在第一网页中的坐标信息;其中,坐标信息用于表示元素在第一网页中的位置。

在本公开的一种示例性实施例中,预置条件包括:将坐标信息中横坐标相同的数量最多的坐标信息确定为目标坐标信息,或者,将坐标信息中纵坐标相同的数量最多的坐标信息确定为目标坐标信息。

在本公开的一种示例性实施例中,该链接地址确定装置还可以包括页面内容抓取单元,其中:

页面内容抓取单元,用于抓取目标链接地址对应的页面内容并存储。

根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。

根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。

本公开示例性实施例可以具有以下部分或全部有益效果:

在本公开的一示例实施方式所提供的链接地址确定方法中,可以获取第一网页代码,并根据第一网页代码(如,新闻网页第一页的代码)获取第二网页代码(如,新闻网页第二页的代码);进而,可以比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码,其中,第一差异代码和第二差异代码均用于表示第一网页与第二网页的不同;进而,可以确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息;从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址(如,新闻目录中各新闻内容对应的链接地址)。依据上述方案描述,本公开一方面能够在一定程度上克服确定特定网页内容链接的效率较低的问题,提升确定网页内容链接的效率;另一方面,相较传统的通过预设规则对每个网页进行判定,本公开的实施例能够减少对于计算资源的占用,提升计算效率,进而提升确定链接地址的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了可以应用本公开实施例的一种链接地址确定方法及链接地址确定装置的示例性系统架构的示意图;

图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;

图3示意性示出了根据本公开的一个实施例的链接地址确定方法的流程图;

图4示意性示出了根据本公开的另一个实施例的链接地址确定方法的流程图;

图5示意性示出了根据本公开的一个实施例中的链接地址确定装置的结构框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

图1示出了可以应用本公开实施例的一种链接地址确定方法及链接地址确定装置的示例性应用环境的系统架构的示意图。

如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。

本公开实施例所提供的链接地址确定方法一般由服务器105执行,相应地,链接地址确定装置一般设置于服务器105中。但本领域技术人员容易理解的是,本公开实施例所提供的链接地址确定方法也可以由终端设备101、102、103执行,相应的,链接地址确定装置也可以设置于终端设备101、102、103中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,服务器105可以获取第一网页代码,并根据第一网页代码获取第二网页代码;以及,比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码;以及,确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息;以及,从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从存储部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram203中,还存储有系统操作所需的各种程序和数据。cpu201、rom202以及ram203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。

以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。

特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本申请的方法和装置中限定的各种功能。

本示例实施方式提供了一种链接地址确定方法。该链接地址确定方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图3所示,该链接地址确定方法可以包括以下步骤s310至步骤s340:

步骤s310:获取第一网页代码,并根据第一网页代码获取第二网页代码。

步骤s320:比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码,其中,第一差异代码和第二差异代码均用于表示第一网页与第二网页的不同。

步骤s330:确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息。

步骤s340:从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

需要说明的是,在本示例实施方式中,不限定步骤s310与步骤s340之间的执行顺序。

下面,对于本示例实施方式的上述步骤进行更加详细的说明。

在步骤s310中,获取第一网页代码,并根据第一网页代码获取第二网页代码。

本示例实施方式中,第一网页代码可以理解为第一网页对应的源代码,第二网页代码可以理解为第二网页对应的源代码。第一网页所属网站的逻辑结构可以为扁平式逻辑结构或树形逻辑结构,本公开的实施例不作限定。此外,第一网页代码和第二网页代码可以为超文本标记语言(hypertextmarkedlanguage,html),html文件的后缀名是.htm或者是.html。html文件看上去和一般文本类似,但是它比一般文本多了标记(例如,<html>、<body>等),浏览器可以通过该标记浏览html文件。第一网页代码和第二网页代码也可以为可扩展标记语言(extensiblemarkuplanguage,xml),xml是一种用于标记电子文件使其具有结构性的标记语言。

本示例实施方式中,获取第一网页代码,可以包括以下步骤:通过用于模拟用户操作的程序调用浏览器,并通过所述浏览器加载第一网页代码;其中,浏览器可以为ie浏览器、firefox浏览器、qq浏览器、safari浏览器、opera浏览器、googlechrome浏览器、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、uc浏览器、遨游浏览器以及世界之窗浏览器等,本公开的实施例不作限定。

进一步地,通过所述浏览器加载第一网页代码的方式具体可以为:通过浏览器内核获取第一网页的内容(如,html、xml以及图像等),并根据第一网页内容确定第一网页的显示方式并通过该显示方式输出至显示器。其中,浏览器内核可以包括渲染引擎(renderingengine)和js引擎,js引擎用于解析javascript语言,并执行javascript语言以实现网页的动态效果;渲染引擎用于解释网页语法并将解释得到的结果渲染至网页上。

另外,用于模拟用户操作的程序可以为selenium,selenium是一种web应用程序自动化测试的开源工具,可以用于运行端到端的功能测试,并且,selenium能够在一个或者多个浏览器中执行测试脚本。

本示例实施方式中,获取第一网页代码,根据第一网页代码获取第二网页代码,包括:

根据预设网页链接地址加载第一网页并存储第一网页代码;

根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址;

加载与网页链接地址对应的第二网页,以获取第二网页代码。

进一步地,根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址,包括:

根据第一网页代码构建与第一网页对应的第一节点树形结构,通过第一节点树形结构中各节点之间的逻辑关系确定用于加载第二网页的网页链接地址。

本示例实施方式中,预设网页链接地址可以用于链接至第一网页的统一资源定位符(uniformresourcelocator,url),url是因特网的万维网服务程序上用于指定信息位置的表示方法。此外,预设网页链接地址对应的第一网页可以是第一网页所属网站的网站首页,也可以不是第一网页所属网站的网站首页,本公开的实施例不作限定。

其中,url的格式可以为:方案://用户名:密码@主机名:端口/服务器上资源的路径;参数?查询#片段。具体地,方案是指访问服务器获取资源时要使用的协议种类(如,http、https和ftp等);主机和端口是指资源宿主服务器的主机名或ip地址。端口是指资源宿主服务器正在监听的端口,大部分http的默认端口号是80,例如,130.32.12.34:800,其中的ip地址是主机名,端口是800;另外,服务器通常要求输入用户名和密码才会允许用户访问数据,如,ftp服务器;路径说明了资源在服务器中的位置;上述的参数用于与服务器进行交互,url中具有参数组件,由字符“;”将其与url的其余部分分隔开;此外,数据库服务、搜索引擎等都可以通过提问题或进行查询来缩小请求资源的范围。由字符“?”将其与url的其余部分分隔开;另外,#片段用于表示网页中的一个位置。

此外,本公开实施例中的url可以为绝对url,也可以为相对url,本公开的实施例不作限定。其中,绝对url包含了访问资源所需的全部信息(如,<ahref=’http://cheng.com/si.html></a>),相对url包含的知识访问资源所需的部分信息(如,<scriptsrc="lib/sea.js"></script>),根据与基础url的结合可以得到访问资源所需的全部信息。

其中,确定基础url的方式为:确定html文档中包含的定义基础url的html标签<base>。

本示例实施方式中,通过第一节点树形结构中各节点之间的逻辑关系确定用于加载第二网页的网页链接地址的方式具体为:根据第一节点树形结构中各节点之间的逻辑关系确定包含用于表示下一页的节点,根据该节点对应的值或数据确定用于加载第二网页的网页链接地址;其中,逻辑关系用于表征网页中元素与元素之间的执行顺序,举例来说,若a节点连接的是b1节点、b2节点以及b3节点,b1节点连接的是c节点,那么,c节点就包含了“下一页”的逻辑,即,用户通过点击b1节点对应的元素,可以得到包含c节点对应的元素的网页。

其中,第一节点树形结构可以为文档对象模型(documentobjectmodel,dom)的树结构。其中,dom是针对xml但经过扩展后可以用于html的应用程序编程接口(applicationprogramminginterface,api),可以把网页映射为一个多层节点结构。此外,dom是dom节点的集合,各节点由边连接,每个节点都包含一个值(value)或数据(data)。dom中的元素被安排在一个层次结构中,它定义了用户最终可以在浏览器中看到的内容。

本示例实施方式中,在根据预设网页链接地址加载第一网页并存储第一网页代码之前,还可以包括以下步骤:读取用户自定义url,根据预设执行时间确定目标url作为预设网页链接地址;或者,获取用户给定的文本信息中的文件链接,根据文件链接以及构造函数构造对应的预设网页链接地址。

本示例实施方式中,加载与网页链接地址对应的第二网页,以获取第二网页代码的方式可以为:通过创建的爬虫程序加载与网页链接地址对应的第二网页,以获取第二网页代码。创建的爬虫程序可以为一种聚焦爬虫。其中,聚焦爬虫是一个自动下载网页的程序,用于根据既定的抓取目标,有选择性的访问万维网(worldwideweb,www)上的网页与相关的链接,以获取所需要的信息。其中,www分为web客户端和web服务器程序。www可以让web客户端访问浏览web服务器上的页面,是一个由许多互相链接的超文本组成的系统,可以通过互联网进行访问。

此外,需要说明的是,通常情况下通用网络爬虫是捜索引擎抓取系统的重要组成部分,用于将互联网上的网页下载到本地,形成一个互联网内容的镜像备份;而聚焦爬虫是面向特定主题需求的一种网络爬虫程序,与通用搜索引擎爬虫的区别在于:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。使用聚焦爬虫抓取网页内容,能够提升对于网页内容的抓取效率。

本示例实施方式中,通过创建的爬虫程序加载与网页链接地址对应的第二网页,以获取第二网页代码的方式具体可以为:利用创建的爬虫程度抓取网页链接地址,并通过selenium模拟人工点击该网页链接地址,以到达第二网页;通过requests库的获取方法(代码表示为get())获取第二网页代码,或者,通过异步请求的方式获取第二网页代码;其中,requests是计算机程序设计语言python实现的http库(即,协议库)。

可见,实施本公开实施例,能够通过构建节点树形结构,使得元素与元素之间的逻辑关系更加明确,进而能够提升确定第二网页对应的网页链接地址的效率。

在步骤s320中,比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码,其中,第一差异代码和第二差异代码均用于表示第一网页与第二网页的不同。

本示例实施方式中,第一差异代码处于第一网页代码中,用于表示第一网页代码与第二网页代码的不同;第二差异代码处于第二网页代码中,用于表示第二网页代码与第一网页代码的不同。

本示例实施方式中,比对第一网页代码与第二网页代码的方式为:

根据第二网页代码构建与第二网页对应的第二节点树形结构;

通过循环递归的方式比对第一节点树形结构和第二节点树形结构。

其中,第二节点树形结构也可以为dom树结构。

本示例实施方式中,通过循环递归的方式比对第一节点树形结构和第二节点树形结构的方式具体可以为:循环递归第一节点树形结构中每个节点以及第二节点树形结构中每个节点,比对确定不同的节点。

具体地,可以先比对第一节点树形结构的父节点与第二节点树形结构的父节点,若相同,则比对第一节点树形结构的父节点下的子节点与第二节点树形结构的父节点下的子节点;若不同,则不再比较第一节点树形结构的父节点下的子节点和第二节点树形结构的父节点下的子节点,以提升循环递归的效率。另外,若第一节点树形结构的父节点与第二节点树形结构的父节点相同,但是,如果其中一父节点下无子节点,则删除另一父节点下的子节点,以便提升循环递归的效率。通过该具体实施方式,可以循环递归第一节点树形结构和第二节点树形结构中所有节点。

可见,实施本公开实施例,能够通过循环递归的方式遍历各节点树形结构中的节点,以确定节点树形结构中的不同之处,以便于对不同之处的网页内容进行进一步的获取,以实现对于网页内容的爬取。

在步骤s330中,确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息。

本示例实施方式中,确定第一网页代码中各链接地址对应的坐标信息,也可以理解为,确定第一网页代码中各元素对应的坐标信息。其中,第一网页中的各链接地址分别对应一网页元素,网页元素用于向用户进行展示,各网页元素均存在水平位置和垂直位置的偏移量。

本示例实施方式中,预置条件包括:将坐标信息中横坐标相同的数量最多的坐标信息确定为目标坐标信息,或者,将坐标信息中纵坐标相同的数量最多的坐标信息确定为目标坐标信息。

本示例实施方式中,坐标信息包括横坐标和纵坐标,其中,横坐标为该链接地址对应的元素的水平位置的偏移量,纵坐标为该链接地址对应的元素的垂直位置的偏移量。

举例来说,坐标信息包括20个(x1,y1),15个(x1,y2),10个(x2,y1)以及5个(x2,y2);其中,横坐标均为x1的坐标信息为35个,横坐标均为x2的坐标信息为15个,纵坐标均为y1的坐标信息为30个,纵坐标均为y2的坐标信息为20个。若预置条件为将坐标信息中横坐标相同的数量最多的坐标信息确定为目标坐标信息,由于x1的坐标信息数量多于x2的坐标信息数量,因此,将(x1,y1)和(x1,y2)确定为目标坐标信息,若预置条件为将坐标信息中纵坐标相同的数量最多的坐标信息确定为目标坐标信息,由于y1的坐标信息数量多于y2的坐标信息数量,因此,将(x1,y2)和(x2,y2)确定为目标坐标信息;其中,目标坐标信息可以包括横坐标相同的坐标信息或纵坐标相同的坐标信息。

本示例实施方式中,确定第一网页代码中各链接地址对应的坐标信息,包括:

根据预设的映射关系确定第一网页代码中各链接地址分别对应的第一网页中的元素;

确定各元素在第一网页中的坐标信息;其中,坐标信息用于表示元素在第一网页中的位置。

本示例实施方式中,预设的映射关系用于表示与各链接地址一一对应的元素之间的关系。根据预设的映射关系确定第一网页代码中各链接地址分别对应的第一网页中的元素的方式具体可以为:根据href以及selenium确定第一网页代码中各链接地址分别对应的第一网页中的元素;其中,href用于表示标签的属性,可以用于指定超链接目标的url。

本示例实施方式中,确定各元素在第一网页中的坐标信息的方式具体可以为:将网页左上角作为坐标系原点,确定各元素在第一网页中的水平位置的偏移量和垂直位置的偏移量。根据上述水平位置的偏移量和垂直位置的偏移量可以定位该元素在网页中的位置。其中,水平位置的偏移量可以为该元素的横坐标,垂直位置的偏移量可以为该元素的纵坐标。

可见,实施本公开实施例,能够根据满足预置条件的横坐标或纵坐标抓取后续各网页中的url列表中各url对应的网页内容,以提升对于内容抓取的效率。

在步骤s340中,从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

本示例实施方式中,目标链接地址对应的元素的坐标信息属于目标坐标信息。例如,目标链接地址对应的元素的坐标信息分别为(x1,y1)、(x1,y2)、(x1,y3)和(x1,y4),而目标坐标信息包括(x1,y1)、(x1,y2)、(x1,y3)、(x1,y4)、(x1,y5)、(x1,y6)、(x1,y7)和(x1,y8)。

本示例实施方式中,该链接地址确定方法还可以包括以下步骤:

抓取目标链接地址对应的页面内容并存储;具体包括:通过爬虫程序抓取目标链接地址对应的页面内容并存储。

举例来说,页面内容可以为新闻内容,若存在多个目标链接地址,则可以抓取多个目标链接地址分别对应的第一新闻内容、第二新闻内容、第三新闻内容以及第四新闻内容等。

本示例实施方式中,还可以包括以下步骤:根据目标坐标信息确定网站中除第一网页和第二网页之外的其余网页的目标链接地址,并通过爬虫程序抓取目标链接地址对应的页面内容。

可见,实施本公开实施例,能够通过定位得到的目标链接地址抓取所需的页面内容,以供研发人员根据该页面内容对网站进行相应的优化。

可见,实施图3所示的链接地址确定方法,能够在一定程度上克服确定特定网页内容链接的效率较低的问题,在用户确定第一网页后即可自动根据第一网页确定特定网页内容链接,提升了确定网页内容链接的效率,进而提高对于特定网页内容的抓取效率,因此,对于大量数据源,万级别以下的少量采集的场景可以节约大量时间,更高效地抓取到特定网页内容;以及,相较传统的通过预设规则对每个网页进行判定,本公开的实施例能够减少对于计算资源的占用,提升计算效率,进而提升确定链接地址的效率。

请参阅图4,图4示意性示出了根据本公开的另一个实施例的链接地址确定方法的流程图。如图4所示,另一个实施例的链接地址确定方法包括步骤s400~步骤s416,其中:

步骤s400:通过用于模拟用户操作的程序调用浏览器。

步骤s402:通过浏览器加载第一网页代码。

步骤s404:根据第一网页代码构建与第一网页对应的第一节点树形结构,通过第一节点树形结构中各节点之间的逻辑关系确定用于加载第二网页的网页链接地址。

步骤s406:通过创建的爬虫程序加载与网页链接地址对应的第二网页,以获取第二网页代码。

步骤s408:比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码。

步骤s410:确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息。预置条件包括:将坐标信息中横坐标相同的数量最多的坐标信息确定为目标坐标信息,或者,将坐标信息中纵坐标相同的数量最多的坐标信息确定为目标坐标信息。

步骤s412:从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

步骤s414:通过爬虫程序抓取目标链接地址对应的页面内容并存储。

步骤s416:检测是否存在下一页,如果是,则执行步骤s414,如果否,则结束流程。

其中,第一网页和第二网页所属的网站中还可以包括第三网页、第四网页以及第五网页等多个网页。通过第一网页和第二网页之间的差异可以确定需要获取网页内容的目标链接地址,目标链接地址的数量可以为多个,上述目标链接地址对应的元素的横坐标均相同或纵坐标均相同。根据对于第一网页和第二网页中目标链接地址对应的网页内容的获取,可以进一步依据目标链接地址的横坐标或纵坐标确定网站中除第一网页和第二网页之外的其他网站中的目标链接地址。进而,可以获取得到其他网站中目标链接地址的页面内容,直到抓取该网站所有页面中目标链接地址的页面内容为止。

需要说明的是,步骤s400~步骤s416对应的具体实施方式请参阅图3中的实施例,此处不再赘述。

可见,实施图4所示的链接地址确定方法,能够在一定程度上克服确定特定网页内容链接的效率较低的问题,提升确定网页内容链接的效率;以及,相较传统的通过预设规则对每个网页进行判定,本公开的实施例能够减少对于计算资源的占用,提升计算效率,进而提升确定链接地址的效率。

进一步的,本示例实施方式中,还提供了一种链接地址确定装置。该链接地址确定装置可以应用于服务器或终端设备。参考图5所示,该链接地址确定装置500可以包括网页代码获取单元501、差异比对单元502、坐标确定单元503以及链接地址确定单元504,其中:

网页代码获取单元501,用于获取第一网页代码,并根据第一网页代码获取第二网页代码;

差异比对单元502,用于比对第一网页代码与第二网页代码,确定第一网页代码中的第一差异代码和第二网页代码中的第二差异代码,其中,第一差异代码和第二差异代码均用于表示第一网页与第二网页的不同;

坐标确定单元503,用于确定第一网页代码中各链接地址对应的坐标信息,并根据坐标信息确定满足预置条件的目标坐标信息;

链接地址确定单元504,用于从第一差异代码和第二差异代码中分别确定与目标坐标信息对应的目标链接地址。

其中,预置条件包括:将坐标信息中横坐标相同的数量最多的坐标信息确定为目标坐标信息,或者,将坐标信息中纵坐标相同的数量最多的坐标信息确定为目标坐标信息。

可见,实施图5所示的链接地址确定装置,能够在一定程度上克服确定特定网页内容链接的效率较低的问题,在用户确定第一网页后即可自动根据第一网页确定特定网页内容链接,提升了确定网页内容链接的效率,进而提高对于特定网页内容的抓取效率,因此,对于大量数据源,万级别以下的少量采集的场景可以节约大量时间,更高效地抓取到特定网页内容;以及,相较传统的通过预设规则对每个网页进行判定,本公开的实施例能够减少对于计算资源的占用,提升计算效率,进而提升确定链接地址的效率。

在本公开的一种示例性实施例中,网页代码获取单元501获取第一网页代码,并根据第一网页代码获取第二网页代码的方式具体可以为:

网页代码获取单元501根据预设网页链接地址加载第一网页并存储第一网页代码;

网页代码获取单元501根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址;

网页代码获取单元501加载与网页链接地址对应的第二网页,以获取第二网页代码。

其中,网页代码获取单元501根据第一网页代码中的代码逻辑确定用于加载第二网页的网页链接地址的方式具体可以为:

网页代码获取单元501根据第一网页代码构建与第一网页对应的第一节点树形结构,通过第一节点树形结构中各节点之间的逻辑关系确定用于加载第二网页的网页链接地址。

可见,实施本公开实施例,能够通过构建节点树形结构,使得元素与元素之间的逻辑关系更加明确,进而能够提升确定第二网页对应的网页链接地址的效率。

在本公开的一种示例性实施例中,差异比对单元502比对第一网页代码与第二网页代码的方式具体可以为:

差异比对单元502根据第二网页代码构建与第二网页对应的第二节点树形结构;

差异比对单元502通过循环递归的方式比对第一节点树形结构和第二节点树形结构。

可见,实施本公开实施例,能够通过循环递归的方式遍历各节点树形结构中的节点,以确定节点树形结构中的不同之处,以便于对不同之处的网页内容进行进一步的获取,以实现对于网页内容的爬取。

在本公开的一种示例性实施例中,坐标确定单元503确定第一网页代码中各链接地址对应的坐标信息的方式具体可以为:

坐标确定单元503根据预设的映射关系确定第一网页代码中各链接地址分别对应的第一网页中的元素;

坐标确定单元503确定各元素在第一网页中的坐标信息;其中,坐标信息用于表示元素在第一网页中的位置。

可见,实施本公开实施例,能够根据满足预置条件的横坐标或纵坐标抓取后续各网页中的url列表中各url对应的网页内容,以提升对于内容抓取的效率。

在本公开的一种示例性实施例中,该链接地址确定装置还可以包括页面内容抓取单元(未图示),其中:

页面内容抓取单元,用于抓取目标链接地址对应的页面内容并存储。

可见,实施本公开实施例,能够通过定位得到的目标链接地址抓取所需的页面内容,以供研发人员根据该页面内容对网站进行相应的优化。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

由于本公开的示例实施例的链接地址确定装置的各个功能模块与上述链接地址确定方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的链接地址确定方法的实施例。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。

需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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