网络数据的采集方法、装置及电子设备转让专利

申请号 : CN202210004919.2

文献号 : CN114417200B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗奇帅蒋宁王洪斌吴海英权佳成

申请人 : 马上消费金融股份有限公司

摘要 :

本发明实施例提供了一种网络数据的采集方法、装置及电子设备,该方法包括:获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。通过本发明实施例,可以灵活根据实际的情况对链接队列进行适应性调整,提高了对id自增网页的数据采集效率。

权利要求 :

1.一种网络数据的采集方法,其特征在于,所述方法包括:

获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述网页是采用标识符自增的方式设计的网页,所述第一标识符用于确定所述链接队列中的第一个链接,且所述第一标识符用于指示之前的所述链接队列中采集成功的链接中的最大标识符,所述队列长度用于表示所述链接队列中链接的数量;

根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;

在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列;

在获取所述待采集的链接队列前,所述方法还包括:

获取所述网页的链接格式和初始的第一标识符;

根据所述初始的第一标识符,设定所述链接队列的初始的队列长度;

根据所述链接格式、初始的第一标识符和初始的队列长度构造所述链接队列。

2.根据权利要求1所述的方法,其特征在于,所述根据所述初始的第一标识符,设定初始的队列长度,包括:根据所述初始的第一标识符,基于等级划分标准设定队列长度的等级为第一等级,并将与所述第一等级对应的第一队列长度设定为初始的队列长度。

3.根据权利要求2所述的方法,其特征在于,所述根据所述采集结果,确定是否更新所述链接队列的队列长度,包括以下至少一项:在第一周期内所述链接队列均采集成功的情况下,更新所述链接队列的队列长度的等级为第二等级;其中,所述链接队列采集成功为所述链接队列中存在采集成功的链接,与所述第二等级对应第二队列长度大于与所述第一等级对应的第一队列长度;

在第一周期内所述链接队列采集失败的数量超过第一数量阈值的情况下,更新所述链接队列的队列长度的等级为第三等级;其中,所述链接队列采集失败为所述链接队列中的链接均采集失败,与所述第三等级对应第三队列长度小于与所述第一等级对应的第一队列长度;

在所述链接队列连续采集失败的数量超过第二数量阈值的情况下,更新所述链接队列的队列长度为第四队列长度;其中,所述第二数量阈值大于所述第一数量阈值,所述第四队列长度大于所述第一队列长度;

在所述链接队列连续采集失败的数量超过第三数量阈值的情况下,更新所述链接队列的队列长度为第五队列长度;其中,所述第三数量阈值大于所述第二数量阈值,所述第五队列长度大于所述第四队列长度;

在所述链接队列连续采集失败的数量超过第四数量阈值的情况下,终止对所述链接队列的采集任务;其中,所述第四数量阈值大于所述第三数量阈值。

4.根据权利要求3所述的方法,其特征在于,所述第四队列长度大于所述等级划分标准中各队列长度的等级所对应的队列长度的最大值。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

根据第二周期,对在所述第二周期内采集失败的链接进行重复采集。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

基于日期更新所述待采集的网页的链接格式和第一标识符。

7.一种网络数据的采集装置,其特征在于,所述装置包括:

采集模块,用于获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述网页是采用标识符自增的方式设计的网页,所述第一标识符用于确定所述链接队列中的第一个链接,且所述第一标识符用于指示之前的所述链接队列中采集成功的链接中的最大标识符,所述队列长度用于表示所述链接队列中链接的数量;

设置模块,根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;

更新模块,用于在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列;

所述设置模块,还用于获取所述网页的链接格式和初始的第一标识符;

根据所述初始的第一标识符,设定所述链接队列的初始的队列长度;

根据所述链接格式、初始的第一标识符和初始的队列长度构造所述链接队列。

8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1‑6任一项所述的网络数据的采集方法步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1‑6任一项所述的网络数据的采集方法步骤。

说明书 :

网络数据的采集方法、装置及电子设备

技术领域

[0001] 本发明涉及数据处理技术领域,尤其涉及一种网络数据的采集方法、装置及电子设备。

背景技术

[0002] 随着现代网络信息的快速增长,在网络中蕴藏了大量的数据,人们为了从网络上获取需要的信息,可以利用采集模块从互联网上将网页采集到本地,以获取网页数据,其通常的做法是从已获得的网页统一资源定位符(Uniform Resource Locator,URL)中,抽取出其中包含的URL链接,并根据这些新的URL链接爬取新网页。
[0003] 现在有大量的网站采用标识符(id)自增的方式设计网页的URL,如果依然采用基于网页之间的关联性获取新的URL再进行爬取,那么数据采集的效率比较低下。

发明内容

[0004] 本发明实施例的目的是提供一种网络数据的采集方法、装置及电子设备,以解决对采用标识符(id)自增的方式设计网页的URL的数据采集的效率低下的问题。
[0005] 为了解决上述技术问题,本发明实施例是这样实现的:
[0006] 第一方面,本发明实施例提供了一种网络数据的采集方法,包括:
[0007] 获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;
[0008] 根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;
[0009] 在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。
[0010] 第二方面,本发明实施例提供了一种网络数据的采集装置,包括:
[0011] 采集模块,用于获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;
[0012] 设置模块,根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;
[0013] 更新模块,用于在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。
[0014] 第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的网络数据的采集方法步骤。
[0015] 第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的网络数据的采集方法步骤。
[0016] 由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。通过本发明实施例,可以灵活根据实际的情况对链接队列进行适应性调整,提高了对id自增网页的数据采集效率,提高了其适用性和鲁棒性。

附图说明

[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为本发明实施例提供的网络数据的采集方法的一种流程示意图;
[0019] 图2为本发明实施例的网络数据的采集装置的软件架构的一种模块化示意图;
[0020] 图3为本发明实施例提供的网络数据的采集方法的另一种流程示意图;
[0021] 图4为本发明实施例提供的网络数据的采集装置的结构示意图;
[0022] 图5为本发明实施例提供的电子设备的结构示意图。

具体实施方式

[0023] 本发明实施例提供了一种网络数据的采集方法、装置及电子设备。
[0024] 为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0025] 如图1所示,本发明实施例提供了一种网络数据的采集方法,该方法的执行主体可以为网络数据的采集装置,其中,所述网络数据的采集装置可以为服务器,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群等。所述网络数据的采集方法包括以下步骤。
[0026] 步骤110、获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量。
[0027] 步骤120、根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;
[0028] 步骤130、在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。
[0029] 如图2所示,本申请实施例的网络数据的采集装置主要包括:调度器201和采集端202。其中,
[0030] 所述调度器201主要用于根据需求将符合下发条件的链接,即url下发,包括:基于待采集的网页对应的采集任务的相关设置构建的待采集的链接队列,所述链接队列中包括预设队列长度的待采集的链接。调度器201将链接或链接队列下发到数据库中,例如以redis203为例,redis203为下发的链接或链接队列分配一个键值进行保存,所述键值可以表示为spider_key。
[0031] 应理解的是,所述链接队列的构建方式可以多种多样,本申请实施例仅给出了其中的一种基于所述待采集的网页的链接格式、第一标识符和队列长度构建的方式。其中,所述链接格式为基于所述待采集的网页的链接构建方式确定的,可以表示为url_format,所述第一标识符用于指示之前的链接队列中采集成功的链接中的最大标识符,可以表示为maxid,所述队列长度用于表示所述链接队列中链接的数量,可以表示为queue_size。根据所述第一标识符和链接格式可以确定当前的链接队列中的第一个链接,再基于队列长度,确定其它链接,从而得到链接队列,例如,所述url_format为http://www.test.com/a/{},所述maxid=0和queue_size=10,则由此构造的链接队列为:http://www.test.com/a/1、http://www.test.com/a/2、http://www.test.com/a/3……http://www.test.com/a/10。
[0032] 采集端202主要用于从redis203中基于spider_key取出待采集的链接或链接队列,对其中链接进行数据采集,并通过预设的异常判断规则对采集到的数据进行判断,来判断对应的网页是否为异常页面,例如是否为404页面等,若判定不是异常页面,则采集到的数据为正常数据,判定所述链接采集成功;若判定为异常页面,则未采集到正常数据,判定所述链接采集失败。在实际的应用过程中,可以通过保存有异常判断规则的判断模块来实现上述判断过程。判定为异常页面的情况可以多种多样,例如该待采集的链接对应的网页不存在、该网页的内容已失效、或者该网页已被删除等。
[0033] 采集端202在完成对所述链接队列各链接的采集后,发回采集结果、并更新redis203中所述链接队列的状态,包括更新所述链接队列中各链接的状态,用于指示所述链接采集成功或采集失败。
[0034] 调度器201还用于检查状态,即对redis203中各链接或链接队列的状态进行检查。若所述链接队列中存在采集成功的链接,则判定所述链接队列采集成功,根据采集结果更新链接队列中的链接,以进行下一轮采集;若该链接队列中所有链接均采集失败,则判定所述链接队列采集失败,记录失败次数,然后,重新请求对该链接队列进行再次采集,或者设置一个间隔时间对该链接队列进行再次采集。同时,调度器将所有采集失败和采集成功的链接进行记录。
[0035] 在一种实施方式中,在判定所述链接队列采集成功的情况下,即所述链接队列中存在采集成功的链接的情况下,可以根据采集成功的链接,更新所述第一标识符。同时,还可以根据采集结果,确定是否更新队列长度,若确定需要更新队列长度,则根据更新后的第一标识符和更新后的队列长度,更新链接队列中的链接,请求对该链接队列进行下一轮采集;若确定不需要更新队列长度,则根据更新后的第一标识符和原有的队列长度,更新链接队列中的链接,请求对该链接队列进行下一轮采集。
[0036] 在一种实施方式中,在判定所述链接队列采集成功的情况下,即所述链接队列中不存在采集成功的链接的情况下,无需更新第一标识符。同时,还可以根据采集结果,确定是否更新队列长度,若确定需要更新队列长度,则根据原有的第一标识符和更新后的队列长度,更新链接队列中的链接,请求对该链接队列进行下一轮采集;若确定不需要更新队列长度,不更新链接队列,直接重新请求对该链接队列进行下一轮采集。
[0037] 根据采集结果,确定是否需要更新队列长度的方式可以多种多样,在一种实施方式中,可以基于预设更新规则来确定;其中,所述更新规则包括以下至少一项:
[0038] 基于所述链接队列采集成功或采集失败;
[0039] 基于所述链接队列连续采集成功或连续采集失败的数量;
[0040] 基于所述链接队列在预设的第一周期内采集成功或采集失败的数量。
[0041] 由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。通过本发明实施例,可以根据采集结果变更队列长度来更新链接队列,从而可以灵活根据实际的情况对链接队列进行适应性调整,提高了对id自增网页的数据采集效率,提高了其适用性和鲁棒性。
[0042] 基于上述实施例,进一步地,如图3所示,在所述步骤110之前,所述方法还包括:
[0043] 步骤101、获取所述网页的链接格式和初始的第一标识符。
[0044] 调度器在确定存在新的待采集的网页的链接信息,即新的url时,可以开启对该待采集的网页的采集任务,对所述待采集的网页进行初始化设置。在一种实施方式中,调度器可以定期,例如每分钟检查redis中的上传列表id_upload,所述上传列表用于记录id自增上传的url,如果在id_upload中存在新上传的url,则确定存在新的待采集的网页的链接信息,并进行初始化设置。所述新的待采集的网页的链接信息可以源于外部输入也可通过对采集到的数据进行解析后提取出的新的url。
[0045] 所述初始化设置可以包括设置所述待采集的网页的链接格式和初始的第一标识符;还可以包括设置所述待采集的网页是否正在被使用的标识信息,初始化为0用于表示不使用,如果正在被使用,例如,正在对所述待采集的网页进行数据采集时,则将所述标识信息修改为1;还可以包括设置所述采集任务的起始时间。
[0046] 步骤102、根据所述初始的第一标识符,设定链接队列的初始的队列长度。
[0047] 所述步骤102的实现方式可以多种多样,本申请实施例仅给出了其中的一种实施方式,根据所述初始的第一标识符,基于等级划分标准设定队列长度的等级为第一等级,并将与所述第一等级对应的第一队列长度设定为初始的队列长度。
[0048] 预先设定队列长度的等级,等级的数量和各等级对应的队列长度可根据实际的需要进行设定,例如,{1:30,2:100,3:300,4:600,5:800,6:1000},即将队列长度的等级划分为6个等级1~6,对应的队列长度分别为30/100/300/600/800/1000。
[0049] 根据预设的等级划分标准,确定与初始的第一标识符对应的队列长度的第一等级。在一种实施方式中,可以先基于预设的计算公式计算与初始的第一标识符对应的平均队列长度,所述平均队列长度可以表示为queue_num,再基于预设的等级划分标准确定与所述初始的第一标识符对应的第一等级和队列长度。
[0050] 所述等级划分标准可以根据实际的需要进行设定,本申请实施例中仅给出了其中的一种实施方式用于举例说明:
[0051] 当queue_num<1的时候,queue_size设置为30,即等级1。
[0052] 当queue_num<10的时候,queue_size设置为100,即等级2。
[0053] 当queue_num<100的时候,queue_size设置为300,即等级3。
[0054] 当queue_num<1000的时候,queue_size设置为600,即等级4。
[0055] 当queue_num<2000的时候,queue_size设置为800,即等级5。
[0056] 当queue_num>2000的时候,queue_size设置为1000,即等级6。
[0057] 所述计算公式可以根据实际的需要进行设定,本申请实施例仅给出了其中的一种实施方式用于举例说明:queue_num=maxid/N。其中,所述N可以是一个预设的确定数值,也可以根据所述待采集的网页对应的网站开设的时间等信息进行设定,此处,可以假设该网站开设一年,则所述N可以为365×24×60,所述计算公式为queue_num=maxid/(365×24×60)。
[0058] 另外,所述等级划分标准还基于对所述网站的其它相关信息进行设置,例如,可以基于所述网站的存在时间,或者基于该网站与其它网站的关联关系等。
[0059] 步骤103、根据所述链接格式、初始的第一标识符和初始的队列长度构造所述链接队列,并基于所述链接队列进行数据采集,得到采集结果。
[0060] 调度器构建所述链接队列,以所述初始的第一标识符作为起始标识符与所述链接格式进行组合,得到所述链接队列中的第一个链接,并基于初始的队列长度得到所述链接队列中的其它链接。
[0061] 调度器将所述链接队列下发到redis中,以等待采集端取出该链接队列并对其中的各链接进行数据采集,以得到采集结果。再根据采集结果确定是否更新第一标识符和/或队列长度,以更新链接队列进行下一轮采集。
[0062] 由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待采集的网页的链接格式和初始的第一标识符;根据所述初始的第一标识符,设定所述链接队列的初始的队列长度;根据所述链接格式、初始的第一标识符和初始的队列长度构造所述链接队列。通过本发明实施例,通过获取链接格式和初始的第一标识符,灵活设置初始的链接队列,以方便后续根据实际的情况对链接队列进行适应性调整,以提高对id自增网页的数据采集效率。
[0063] 进一步的,上述步骤120中调整队列长度的具体处理方式可以多种多样,如上述实施例,可以基于每次对链接队列进行数据采集后确定的采集结果为采集成功或采集失败,对下一次数据采集时链接队列的队列长度进行调整;也可以基于该链接队列采集成功或者采集失败的数量对队列长度进行调整;还可以基于预设的第一周期内该链接队列采集成功或者采集失败的数量对队列长度进行调整,其中,所述第一周期可根据实施的需要进行设定,例如为半天、一天或两天等。本申请实施例仅以以下至少一种的处理方式为例进行举例说明。
[0064] 在一种实施方式中,在第一周期内所述链接队列均采集成功的情况下,更新所述链接队列的队列长度的等级为第二等级;其中,所述链接队列采集成功为所述链接队列中存在采集成功的链接,与所述第二等级对应第二队列长度大于与所述第一等级对应的第一队列长度。
[0065] 在确定所述链接队列在第一周期内不存在采集失败的情况时,可认为对应网站的更新频率较高,可适当增长所述链接队列的队列长度以提高每次对链接队列进行数据采集的采集效率。例如,所述链接队列的原有的队列长度的等级为第一等级,则在第一周期内所述链接队列均采集成功的情况下,将所述链接队列的队列长度的等级提升一级为第二等级,若所述第一等级为等级3,对应的第一队列长度为300,则提升一级后第二等级为等级4,对应的第二队列长度为600。
[0066] 在另一种实施方式中,在第一周期内所述链接队列采集失败的数量超过第一数量阈值的情况下,更新所述链接队列的队列长度的等级为第三等级;其中,所述链接队列采集失败为所述链接队列中的链接均采集失败,与所述第三等级对应第三队列长度小于与所述第一等级对应的第一队列长度。
[0067] 在确定所述链接队列在第一周期内存在多次采集失败的情况下,可认为该网站的更新频率较低,过长的链接队列会造成资源浪费,可以适当减少所述链接队列的队列长度。例如,可以将所述第一数量阈值设为三次,所述链接队列的原有的队列长度的等级为第一等级,则在第一周期内所述链接队列采集失败的数量超过三次的情况下,将所述链接队列的队列长度的等级降低一级为第三等级,若所述第一等级为等级3,对应的第一队列长度为
300,则降低一级后第三等级为等级2,对应的第三队列长度为100。
[0068] 在另一种实施方式中,在所述链接队列连续采集失败的数量超过第二数量阈值的情况下,更新所述链接队列的队列长度为第四队列长度;其中,所述第二数量阈值大于所述第一数量阈值,所述第四队列长度大于所述第一队列长度。
[0069] 为了防止网站存在批量删除网页或失效的情况,导致在当前队列长度的范围内不存在可以采集到正常数据的网页,此时,基于当前队列长度即使多次重复进行数据采集也不可能采集成功,为此,可以增加所述链接队列的队列长度达到第四队列长度,再次尝试进行数据采集。例如,可以将所述第二数量阈值设为五次,所述链接队列的原有的队列长度的等级为第一等级,则在所述链接队列连续五次采集失败的情况下,将所述链接队列设为第四队列长度。
[0070] 所述第四队列长度可以根据实际的需要进行设定,在一种实施方式中,所述第四队列长度大于所述等级划分标准中各队列长度的等级所对应的队列长度的最大值。例如,如上所述将所述队列长度划分为六个等级,其中队列长度最长的为等级6对应的队列长度1000,则可以将所述第四队列长度设为2000或者6000等。在另一种实施方式中,所述第四队列长度可以为第一队列长度的预设整数倍,例如10倍,在所述第一等级为等级3,对应的队列长度为300的情况下,所述第四队列长度可以为3000。
[0071] 在另一种实施方式中,在所述链接队列连续采集失败的数量超过第三数量阈值的情况下,更新所述链接队列的队列长度为第五队列长度;其中,所述第三数量阈值大于所述第二数量阈值,所述第五队列长度大于所述第四队列长度。
[0072] 所述第三数量阈值和第五队列长度可以认为是在确定是否需要终止所述链接队列的采集任务前的最后一次尝试,可以根据实际的需要进行设定,例如所述第三数量阈值为23,所述第五队列长度为20000。
[0073] 在另一种实施方式中,在所述链接队列连续采集失败的数量超过第四数量阈值的情况下,终止对所述链接队列的采集任务;其中,所述第四数量阈值大于所述第三数量阈值。
[0074] 在连续采集失败数量过多时,可以认为该网站或者链接队列存在问题,需要停止所述链接队列的采集任务。所述第四数量阈值可以根据实际的需要进行设定,例如24。
[0075] 在一种实施方式中,调度器还用于定期发送运行情况,可以包括:各采集任务的运行情况;采集结果;需要终止的采集任务等,例如可以发送邮件给与该采集任务对应的管理人员进行查看或审核。
[0076] 由以上本发明实施例提供的技术方案可见,本发明实施例通过预设的规则,根据所述采集结果,更新所述链接队列的队列长度,对于采集成功的链接队列可通过增长队列长度提升每次采集的数据量,对于采集不成功的链接队列通过减少队列长度节省不必要的采集资源,对于网站可能存在批量删除或失效的网页的情况,则通过设置一个较大的队列长度尽可能得跳过批量删除或失效的网页以使采集任务能够尽快恢复到采集成功的状态,并且在最终确定无法采集成功后,及时终止采集任务,节省采集资源并提醒检查。通过本发明实施例,通过合理得更新队列长度,可以有效提升对id自增网页的数据采集效率,减少数据采集的失败率,提高了其适用性和鲁棒性。
[0077] 基于上述实施例,进一步地,所述调度器还用于重复采集false_url,根据第二周期,对在所述第二周期内采集失败的链接false_url进行重复采集。
[0078] 由于网站可能存在审核机制,从而使一些新发的信息可能在网页刚发布时未公开,还无法采集成功,而基于本申请实施例的数据采集方式,在所述链接队列采集成功后,可能不会再对采集失败的链接重复进行数据采集,从而导致遗漏信息。为此,调度器在检查redis中各链接队列的采集状态时,将分别记录采集失败和采集成功的链接,并基于所述第二周期对采集失败的链接下发到redis中,以待采集端提取进行重复采集。
[0079] 所述第二周期可以为一个周期,也可以为多个周期的组合。本申请实施例仅给出了其中的一种具体实施方式进行举例说明:
[0080] 以2小时的第二周期,每2小时将前2小时内采集失败的链接下发到redis中;
[0081] 以一天为第二周期,每天将前一天采集失败的链接下发到redis中。
[0082] 在一种实施方式中,所述调度器还用于清理过期数据。对于采集成功的链接,其对应的链接数据会在预设周期后成为过期数据,为了节省数据空间,需要定期清理过期数据。其中,清理的周期以及判定为过期数据的周期可以根据实际的需要进行设定,本申请实施例仅给出了其中的一种实施方式中:
[0083] 每小时清理1.5天前采集成功的链接数据。
[0084] 进一步地,所述调度器还用于更新url_format。由于可能存在网站的网页设置方式为基于日期进行更新,对于此类网站,所述方法还包括:
[0085] 基于日期更新所述待采集的网页的url_format和第一标识符。
[0086] 例如,https://xw.test.com/cmsid/20210921V02IGD00,其中20210921随着每天的日期会不断变化。可以每天定点将所述待采集的网页的链接格式进行重置为当天时间,用于更新对应链接队列中的各个链接。
[0087] 进一步地,所述调度器还用于检查spider_key长度。为了防止由于采集端异常等原因,队列积压,调度器会定期,例如每30分钟,检查redis中链接队列的数量,即检查redis中spider_key的长度是否超过预设阈值,例如20万。在确定所述链接队列的数量超过预设阈值时,进行异常告警,具体可以通过发送告警邮件或告警信号实现。
[0088] 进一步地,所述调度器还用于保存maxid。定期统计每个待采集的网页对应的链接队列的maxid,即统计每个url_format对应的maxid,并记录保存,以观察所述maxid是否正常更新。
[0089] 进一步地,所述调度器还用于检查是否需要终端采集任务,包括:定期检测maxid是否符合规则,若不符合规则,则终止对应的链接队列的采集任务,并进行异常告警。
[0090] 由以上本发明实施例提供的技术方案可见,本发明实施例通过根据第二周期,对在所述第二周期内采集失败的链接进行重复采集,从而降低了数据漏采的可能性,提高了数据采集的效率。
[0091] 对应上述实施例提供的网络数据的采集方法,基于相同的技术构思,本发明实施例还提供了一种网络数据的采集装置,图4为本发明实施例提供的网络数据的采集装置的模块组成示意图,该网络数据的采集装置用于执行图1至图3描述的网络数据的采集方法,如图4所示,该网络数据的采集装置包括:采集模块401、设置模块402和更新模块403。其中,[0092] 所述采集模块401用于获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;所述设置模块402根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;所述更新模块403用于在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。
[0093] 由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。通过本发明实施例,可以根据采集结果变更队列长度来更新链接队列,从而可以灵活根据实际的情况对链接队列进行适应性调整,提高了对id自增网页的数据采集效率,提高了其适用性和鲁棒性。
[0094] 基于上述实施例,进一步地,所述设置模块还用于执行以下操作:
[0095] 获取所述网页的链接格式和初始的第一标识符;
[0096] 根据所述初始的第一标识符,设定所述链接队列的初始的队列长度;
[0097] 根据所述链接格式、初始的第一标识符和初始的队列长度构造所述链接队列。
[0098] 进一步地,所述设置模块用于根据所述初始的第一标识符,基于等级划分标准设定队列长度的等级为第一等级,并将与所述第一等级对应的第一队列长度设定为初始的队列长度。
[0099] 由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待采集的网页的链接格式和初始的第一标识符;根据所述初始的第一标识符,设定所述链接队列的初始的队列长度;根据所述链接格式、初始的第一标识符和初始的队列长度构造所述链接队列。通过本发明实施例,通过获取链接格式和初始的第一标识符,灵活设置初始的链接队列,以方便后续根据实际的情况对链接队列进行适应性调整,以提高了对id自增网页的数据采集效率。
[0100] 基于上述实施例,进一步地,所述更新模块用于执行以下至少一项:
[0101] 在第一周期内所述链接队列均采集成功的情况下,更新所述链接队列的队列长度的等级为第二等级;其中,所述链接队列采集成功为所述链接队列中存在采集成功的链接,与所述第二等级对应第二队列长度大于与所述第一等级对应的第一队列长度;
[0102] 在第一周期内所述链接队列采集失败的数量超过第一数量阈值的情况下,更新所述链接队列的队列长度的等级为第三等级;其中,所述链接队列采集失败为所述链接队列中的链接均采集失败,与所述第三等级对应第三队列长度小于与所述第一等级对应的第一队列长度;
[0103] 在所述链接队列连续采集失败的数量超过第二数量阈值的情况下,更新所述链接队列的队列长度为第四队列长度;其中,所述第二数量阈值大于所述第一数量阈值,所述第四队列长度大于所述第一队列长度;
[0104] 在所述链接队列连续采集失败的数量超过第三数量阈值的情况下,更新所述链接队列的队列长度为第五队列长度;其中,所述第三数量阈值大于所述第二数量阈值,所述第五队列长度大于所述第四队列长度;
[0105] 在所述链接队列连续采集失败的数量超过第四数量阈值的情况下,终止对所述链接队列的采集任务;其中,所述第四数量阈值大于所述第三数量阈值。
[0106] 进一步地,所述第四队列长度大于所述等级划分标准中各队列长度的等级所对应的队列长度的最大值。
[0107] 由以上本发明实施例提供的技术方案可见,本发明实施例通过预设的规则,根据所述采集结果,更新所述链接队列的队列长度。通过本发明实施例,通过预设的规则可以更加合理得更新队列长度,提高了对id自增网页的数据采集效率,减少数据采集的失败率,提高了其适用性和鲁棒性。
[0108] 基于上述实施例,进一步地,所述采集模块还用于根据第二周期,对在所述第二周期内采集失败的链接进行重复采集。
[0109] 进一步地,所述设置模块还用于基于日期更新所述待采集的网页的链接格式和第一标识符。
[0110] 由以上本发明实施例提供的技术方案可见,本发明实施例通过根据第二周期,对在所述第二周期内采集失败的链接进行重复采集。通过本发明实施例,降低了数据漏采的可能性,提高了数据采集的效率。
[0111] 本发明实施例提供的网络数据的采集装置能够实现上述网络数据的采集方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
[0112] 需要说明的是,本发明实施例提供的网络数据的采集装置与本发明实施例提供的网络数据的采集方法基于同一发明构思,因此该实施例的具体实施可以参见前述网络数据的采集方法的实施,重复之处不再赘述。
[0113] 对应上述实施例提供的网络数据的采集方法,基于相同的技术构思,本发明实施例还提供了一种电子设备,该电子设备用于执行上述的网络数据的采集方法,图5为实现本发明各个实施例的一种电子设备的结构示意图,如图5所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器501和存储器502,存储器502中可以存储有一个或一个以上存储应用程序或数据。其中,存储器502可以是短暂存储或持久存储。存储在存储器502的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器501可以设置为与存储器502通信,在电子设备上执行存储器502中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源503,一个或一个以上有线或无线网络接口504,一个或一个以上输入输出接口505,一个或一个以上键盘506。
[0114] 具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现以下方法步骤:
[0115] 获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;
[0116] 根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;
[0117] 在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。
[0118] 本申请实施例还提供一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:
[0119] 获取待采集的链接队列,并基于所述链接队列进行数据采集,得到采集结果;其中,所述链接队列基于与所述链接队列对应的网页的链接格式、第一标识符和队列长度构造,所述第一标识符用于确定所述链接队列中的第一个链接,所述队列长度用于表示所述链接队列中链接的数量;
[0120] 根据所述采集结果,确定是否更新所述链接队列的第一标识符和/或队列长度;
[0121] 在更新所述链接队列的第一标识符和/或队列长度的情况下,根据更新后的第一标识符和/或队列长度,更新所述链接队列。
[0122] 本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0123] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0124] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0125] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0126] 在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0127] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0128] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0129] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0130] 本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0131] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。