一种网络信息采集方法及装置与流程

文档序号:11950549阅读:101来源:国知局
一种网络信息采集方法及装置与流程

本发明涉及数据处理技术领域,特别涉及一种网络信息采集方法及装置。



背景技术:

随着互联网技术的迅速发展,互联网在社会和生活中的地位越来越显著。尤其是互联网作为大量信息的载体,如何有效地采集这些信息成为一个巨大的挑战。

目前,可以通过网络爬虫的方式来实现网页信息的采集,通过抓取既定目标,有选择的访问互联网上的网页和相关链接,抓取需要的网页信息。

然而,网络爬虫方式在抓取网页信息的过程中,经常存在信息漏采的问题,而信息漏采可能会对信息使用造成较大影响,因此,如何采集完整的网络信息,,成为急需解决的问题。



技术实现要素:

本发明实施例提供了一种网络信息采集方法及装置,以采集完成的网络信息。

第一方面,本发明实施例提供了一种网络信息采集方法,包括:

确定待采集网络信息的目标网站;

获取对应所述目标网站的统一资源定位符URL;

针对每一个URL,抓取对应的网络信息,并获取每一个URL与其子URL的属性关系;

根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息;

在确定存在漏采信息时,对漏采信息进行重新采集。

优选地,所述获取对应所述目标网站的统一资源定位符URL,包括:

确定所述目标网站的入口URL;

根据所述入口URL,确定对应所述目标网站的URL抽取规则;

利用所述URL抽取规则,执行如下步骤:

S0:将所述入口URL作为第一URL,执行S1;

S1:抽取与第一URL相关的URL,将抽取到的URL作为第一URL,并执行S1,直到未抽取到与第一URL相关的URL。

优选地,

每一个目标URL与其子URL的属性关系包括:目标URL、目标URL对应的各个子URL、以及每一个子URL对应的深度、目标URL的类型和该目标URL对应的每一个子URL的类型;

所述类型至少包括:导航页、列表页和详情页中的至少一种。

优选地,所述根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息,包括:

根据所述属性关系,确定每一个当前URL对应的子URL的数量;

并根据抓取到的网络信息,确定每一个当前URL对应的抓取数量;

针对每一个第二URL,在确定该第二URL对应的子URL的数量和抓取数量之间的差值大于0时,则确定对该第二URL进行网络信息的抓取时,存在漏采信息。

优选地,在确定针对第二URL存在漏采信息时,所述对漏采信息进行重新采集,包括:

根据第二URL对应的子URL以及针对该第二URL抓取到的网络信息,确定未进行网络信息抓取的子URL;

对未进行网络信息抓取的子URL进行重新采集。

第二方面,本发明实施例提供了一种网络信息采集装置,包括:

第一确定单元,用于确定待采集网络信息的目标网站;

获取单元,用于获取对应所述目标网站的统一资源定位符URL;

处理单元,用于针对每一个URL,抓取对应的网络信息;获取每一个URL与其子URL的属性关系;

第二确定单元,用于根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息;

采集单元,用于在确定存在漏采信息时,对漏采信息进行重新采集。

优选地,所述获取单元,具体用于:

确定所述目标网站的入口URL;

根据所述入口URL,确定对应所述目标网站的URL抽取规则;

利用所述URL抽取规则,执行如下步骤:

S0:将所述入口URL作为第一URL,执行S1;

S1:抽取与第一URL相关的URL,将抽取到的URL作为第一URL,并执行S1,直到未抽取到与第一URL相关的URL。

优选地,

每一个目标URL与其子URL的属性关系包括:目标URL、目标URL对应的各个子URL、以及每一个子URL对应的深度、目标URL的类型和该目标URL对应的每一个子URL的类型;

所述类型至少包括:导航页、列表页和详情页中的至少一种。

优选地,所述第二确定单元,具体用于:

根据所述属性关系,确定每一个当前URL对应的子URL的数量;

并根据抓取到的网络信息,确定每一个当前URL对应的抓取数量;

针对每一个第二URL,在确定该第二URL对应的子URL的数量和抓取数量之间的差值大于0时,则确定对该第二URL进行网络信息的抓取时,存在漏采信息。

优选地,在确定针对第二URL存在漏采信息时,所述采集单元,具体用于:

根据第二URL对应的子URL以及针对该第二URL抓取到的网络信息,确定未进行网络信息抓取的子URL;

对未进行网络信息抓取的子URL进行重新采集。

本发明实施例提供了一种网络信息采集方法及装置,通过在抓取网络信息的过程中,获取每一个URL与其子URL的属性关系,可以根据抓取到的网络信息和属性关系来确定是否存在漏采信息,如果存在,可以对漏采信息进行重新采集,从而可以采集到完整的网络信息。

附图说明

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

图1是本发明一个实施例提供的方法流程图;

图2是本发明一个实施例提供的另一种方法流程图;

图3是本发明一个实施例提供的树状图;

图4是本发明一个实施例提供的装置所在设备的硬件架构图;

图5是本发明一个实施例提供的装置结构示意图。

具体实施方式

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

如图1所示,本发明实施例提供了一种网络信息采集方法,该方法可以包括以下步骤:

步骤101:确定待采集网络信息的目标网站;

步骤102:获取对应所述目标网站的URL(Uniform Resoure Locator,统一资源定位符);

步骤103:针对每一个URL,抓取对应的网络信息,并获取每一个URL与其子URL的属性关系;

步骤104:根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息;

步骤105:在确定存在漏采信息时,对漏采信息进行重新采集。

根据上述本发明实施例,通过在抓取网络信息的过程中,获取每一个URL与其子URL的属性关系,可以根据抓取到的网络信息和属性关系来确定是否存在漏采信息,如果存在,可以对漏采信息进行重新采集,从而可以采集到完整的网络信息。

在本发明一个实施例中,由于每一个网站都包括有大量的URL,为了保证对网站的网络信息采集的完整性,需要获取该网站包括的所有URL,其中,可以通过如下方式获取对应所述目标网站的URL,该方式可以包括:

确定所述目标网站的入口URL;

根据所述入口URL,确定对应所述目标网站的URL抽取规则;

利用所述URL抽取规则,执行如下步骤:

S0:将所述入口URL作为第一URL,执行S1;

S1:抽取与第一URL相关的URL,将抽取到的URL作为第一URL,并执行S1,直到未抽取到与第一URL相关的URL。

其中,该URL抽取规则可以包括:正则表达式或XPass。

其中,该入口URL为该目标网站的ROOT URL。对于一个网站中所包括的各个URL之间的关系,是树状关系,在该树状关系对应的树状图中的根部,为ROOT URL,由于在树状图中的各个URL中,只有该ROOT URL不包括父URL,因此,通过将该ROOT URL作为入口URL,可以获取到与该URL相关的URL,该相关的URL为子URL。

在本发明一个实施例中,为了能够获知到是否存在漏采信息,需要获取每一个URL与其子URL的属性关系,其中,每一个目标URL与其子URL的属性关系至少可以包括:目标URL、目标URL对应的各个子URL、以及每一个子URL对应的深度、目标URL的类型和该目标URL对应的每一个子URL的类型;

所述类型至少包括:导航页、列表页和详情页中的至少一种。

其中,每一个子URL对应的深度可以通过如下方式确定:例如,一个当前URL包括A1URL;A1URL包括B1URL和B2URL。那么对于该当前URL对应3个子URL,这3个子URL包括:A1URL、B1URL和B2URL。其中,A1URL对应的深度为1,B1URL和B2URL对应的深度均为2。

在本发明一个实施例中,为了保证网络信息采集的完整性,需要在对目标网站的网络信息采集结束后,确定是否存在漏采信息,其中,可以根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息,该方法可以包括:

根据所述属性关系,确定每一个当前URL对应的子URL的数量;

并根据抓取到的网络信息,确定每一个当前URL对应的抓取数量;

针对每一个第二URL,在确定该第二URL对应的子URL的数量和抓取数量之间的差值大于0时,则确定对该第二URL进行网络信息的抓取时,存在漏采信息。

在对目标网站的网络信息进行采集过程中,需要针对每一个URL进行信息采集,每一个URL可以采集到至少一页内容。例如,该URL的类型为导航页,那么可以针对该URL采集到至少一页导航页的内容。因此,若子URL的数量大于抓取的数量,那么表明在这些子URL中存在未被抓取网络信息的URL。若子URL的数量小于等于抓取到的数量,表明不存在漏采信息。

在本发明一个实施例中,为了保证对目标网站采集网络信息的完整性,需要对漏采信息进行重新采集,该方式可以包括:

根据第二URL对应的子URL以及针对该第二URL抓取到的网络信息,确定未进行网络信息抓取的子URL;

对未进行网络信息抓取的子URL进行重新采集。

其中,在对是否存在漏采信息进行确定时,可以逐个比对每一个子URL以及抓取到的每一个内容页,若发现某个子URL不包括对应的内容页,那么将该子URL确定为未进行网络信息抓取的子URL,并对该未进行网络信息抓取的子URL进行重新采集,从而可以提高网络信息采集的完整性。

下面以一个具体实施例,对本发明提供的网络信息采集方法进行详细说明,请参考图2,该方法可以包括以下步骤:

步骤201:确定待采集网络信息的目标网站为网站A。

在实际的网络信息采集过程中,针对的网站可能包括多个,并且针对每一个网站进行网络信息的采集时,采集方式可以相同,因此,本实施例以其中一个网站作为目标网站,对该目标网站的网络信息进行采集,以对本发明进行说明。例如,网站A。

步骤202:确定网站A的入口URL,并确定能够满足该入口URL的抽取规则,并将入口URL作为当前URL执行步骤203。

请参考图3,为网站A对应URL的树状图。由于ROOT URL不包括父节点,因此,可以将ROOT URL作为该网站A的入口URL。

其中,确定的抽取规则需要能够满足URL。

在本发明一个实施例中,确定的抽取规则为一种,在对每一个URL进行相关URL的抽取时,均使用该确定的抽取规则;该确定的抽取规则可以为多种不同的规则,每抽取到一个URL,可以确定该URL的抽取规则,并利用确定的该URL的抽取规则对该URL的相关URL进行抽取。

下面以确定的抽取规则为一种为例,对本实施例进行说明。

其中,该抽取规则可以包括:正则表达式或XPass。

步骤203:根据确定抽取规则,对该当前URL的相关URL进行抽取。

步骤204:每抽取到相关URL之后,获取每一个URL与其子URL的属性关系,并抓取该相关URL的网络信息,并将抽取到的相关URL作为当前URL执行步骤203,直到对当前URL未抽取到相关URL。

请参考图3,例如,对ROOT URL抽取到的相关URL包括:A1URL和A2URL。此时可以先抓取ROOT URL的网络信息,然后抓取A1URL的网络信息和A2URL的网络信息。进一步地,对A1URL抽取到的相关URL包括:B1URL和B2URL。此时,抓取B1URL的网络信息和B2URL的网络信息。进一步地,对A2URL抽取到的相关URL包括:B3URL。此时,可以抓取B3URL的网络信息。以此类推,直到无法抽取到相关URL。

在本发明一个实施例中,为了能够获知到是否存在漏采信息,需要获取每一个URL与其子URL的属性关系,其中,每一个目标URL与其子URL的属性关系至少可以包括:目标URL、目标URL对应的各个子URL、以及每一个子URL对应的深度、目标URL的类型和该目标URL对应的每一个子URL的类型;

所述类型至少包括:导航页、列表页和详情页中的至少一种。

其中,每一个子URL对应的深度可以通过如下方式确定:请参考图3,ROOT URL包括A1URL和A2URL;A1URL包括B1URL和B2URL;A2URL包括B3URL。那么对于该ROOT URL对应5个子URL,这5个子URL包括:A1URL、A2URL、B1URL、B2URL和B3URL。其中,A1URL和A2URL对应的深度均为1,B1URL、B2URL和B3URL对应的深度均为2。

在本发明一个实施例中,为了实现网络信息的抓取,可以将获取的属性关系存储到数据分发系统中,该数据分发系统可以为kafka(高吞吐量的分布式发布订阅消息系统),kafka根据该属性关系将各个URL分发给分布式平台的各个节点上,由各个节点根据分配到的URL进行网络信息的抓取。在分发结束,可以将该属性关系转存到Habase数据库中,以供后续过程调用。

其中,网络信息的抓取策略至少可以包括:深度优先遍历策略、广度优先遍历策略、宽度优先遍历策略、反向链接数策略和大站优先策略。例如,采用宽度优先遍历策略,将抽取到URL直接插入到待抓取URL队列的末尾。在抓取网络信息时,按照待抓取URL队列的顺序逐个抓取每一个URL的网络信息。

步骤205:根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息。

其中,抓取到的网络信息可以包括:导航页采集数量、列表页采集数量、详情页采集数量和总采集数量中的至少一种。其中,针对一个导航页可以采集到多个列表页,针对一个列表页可以采集到多个详情页。因此,若导航页采集数量大于列表页采集数量,和/或,列表页采集数量大于详情页采集数量,那么表明在网络信息的抓取过程中,存在漏采信息。

在本发明一个实施例中,为了提高网络信息采集到准确性,可以对网站A实施多次采集,并根据多次采集到结果进行分析,以确定是否存在漏采信息。

若导航页采集数量小于等于列表页采集数量,以及列表页采集数量小于等于详情页采集数量,那么需要进一步根据存储的属性关系和采集到网络信息确认是否存在漏采信息。

其中,可以根据属性关系,确定每一个当前URL对应的子URL的数量;

并根据抓取到的网络信息,确定每一个当前URL对应的抓取数量;

针对每一个目标URL,在确定该目标URL对应的子URL的数量和抓取数量之间的差值大于0时,则确定对该目标URL进行网络信息的抓取时,存在漏采信息。

在对网站A的网络信息进行采集过程中,需要针对每一个URL进行信息采集,每一个URL可以采集到至少一页内容。例如,该URL的类型为导航页,那么可以针对该URL采集到至少一页导航页的内容。因此,若子URL的数量大于抓取的数量,那么表明在这些子URL中存在未被抓取网络信息的URL。若子URL的数量小于等于抓取到的数量,表明不存在漏采信息。

步骤206:在确定存在漏采信息时,对漏采信息进行重新采集。

其中,在对是否存在漏采信息进行确定时,可以逐个比对每一个子URL以及抓取到的每一个内容页,若发现某个子URL不包括对应的内容页,那么将该子URL确定为未进行网络信息抓取的子URL,并对该未进行网络信息抓取的子URL进行重新采集,从而可以提高网络信息采集的完整性。

在本发明一个实施例中,在确定出未进行网络信息抓取的子URL时,可以重新选择抓取策略,以对未进行网络信息抓取的子URL进行网络信息的抓取。

如图4、图5所示,本发明实施例提供了一种网络信息采集装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图4所示,为本发明实施例提供的网络信息采集装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图5所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的网络信息采集装置,包括:

第一确定单元501,用于确定待采集网络信息的目标网站;

获取单元502,用于获取对应所述目标网站的统一资源定位符URL;

处理单元503,用于针对每一个URL,抓取对应的网络信息;获取每一个URL与其子URL的属性关系;

第二确定单元504,用于根据抓取到的网络信息和获取的所述属性关系,确定是否存在漏采信息;

采集单元505,用于在确定存在漏采信息时,对漏采信息进行重新采集。

在本发明一个实施例中,所述获取单元502,具体用于:

确定所述目标网站的入口URL;

根据所述入口URL,确定对应所述目标网站的URL抽取规则;

利用所述URL抽取规则,执行如下步骤:

S0:将所述入口URL作为第一URL,执行S1;

S1:抽取与第一URL相关的URL,将抽取到的URL作为第一URL,并执行S1,直到未抽取到与第一URL相关的URL。

在本发明一个实施例中,每一个目标URL与其子URL的属性关系包括:目标URL、目标URL对应的各个子URL、以及每一个子URL对应的深度、目标URL的类型和该目标URL对应的每一个子URL的类型;

所述类型至少包括:导航页、列表页和详情页中的至少一种。

在本发明一个实施例中,所述第二确定单元504,具体用于:

根据所述属性关系,确定每一个当前URL对应的子URL的数量;

并根据抓取到的网络信息,确定每一个当前URL对应的抓取数量;

针对每一个第二URL,在确定该第二URL对应的子URL的数量和抓取数量之间的差值大于0时,则确定对该第二URL进行网络信息的抓取时,存在漏采信息。

在本发明一个实施例中,在确定针对第二URL存在漏采信息时,所述采集单元505,具体用于:

根据第二URL对应的子URL以及针对该第二URL抓取到的网络信息,确定未进行网络信息抓取的子URL;

对未进行网络信息抓取的子URL进行重新采集。

综上,本发明实施例具体如下有益效果:

1、在本发明实施例中,通过在抓取网络信息的过程中,获取每一个URL与其子URL的属性关系,可以根据抓取到的网络信息和属性关系来确定是否存在漏采信息,如果存在,可以对漏采信息进行重新采集,从而可以采集到完整的网络信息。

2、在本发明实施例中,通过根据抓取到的网络信息,在导航页采集数量大于列表页采集数量时,和/或,在列表页采集数量大于详情页采集数量时,可以确定存在漏采信息。

3、在本发明实施例中,通过利用抓取到的网络信息和存储的属性关系,在确定该第二URL对应的子URL的数量和抓取数量之间的差值大于0时,则确定对该第二URL进行网络信息的抓取时,存在漏采信息,从而可以确定出未进行网络信息抓取的URL。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

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

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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