一种数据处理方法和客户端设备与流程

文档序号:14860707发布日期:2018-07-04 07:10阅读:137来源:国知局
一种数据处理方法和客户端设备与流程

本发明涉及客户端领域,尤其涉及一种数据处理方法和客户端设备。



背景技术:

网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,网络爬虫在爬取网站时,往往会遇到对请求速度有限制的网站,一般来说,若网络爬虫所在的ip在移动时间窗口内的请求数大于移动时间窗口允许的最大请求数,则网站将采取反爬虫措施,造成爬取失败。

现有技术中,为了解决上述问题,可以对网络爬虫进行限速,根据移动时间窗口的时长和移动时间窗口允许的最大请求数,可以得到在连续发送请求的情况下,最小的固定时间时隔,网络爬虫按照固定时间间隔向网站发送请求,可以避免上述问题。

然而,在一些应用场合,用户往往会发起一些零碎的,请求数量不多,但是实时性要求比较高的爬取任务,由于这些任务的开始时刻与上一次爬取任务的结束时刻之间存在时间间隔,而且数量不多,即使在很短的时间内将所有请求都发送出去,也不会超出移动时间窗口的限制,这时,如果还是采用固定时间间隔的方式,将降低爬取的效率。



技术实现要素:

本发明实施例提供了一种数据处理方法和客户端设备,可以使客户端设备灵活选用不同的爬取速度,提高爬取效率。

有鉴于此,本发明实施例提供了一种数据处理方法,包括:

客户端设备获取目标爬取任务;

所述客户端设备获取当前移动时间窗口的请求数,所述当前移动时间窗口为以当前时刻作为结束时刻的移动时间窗口;

所述客户端设备根据所述当前移动时间窗口的请求数和所述目标爬取任务的请求数调节所述目标爬取任务的请求发送速度。

在一些可能的实现方式中,所述客户端设备获取当前移动时间窗口的请求数包括:

所述客户端设备判断所述当前时刻与第一结束移动时间窗口的结束时刻之间的间隔是否大于或等于单位个移动时间窗口的时长,所述第一结束移动时间窗口为所述客户端设备执行最后一个爬取任务对应的移动时间窗口;

若所述当前时刻与所述第一结束移动时间窗口的结束时刻之间的间隔大于或等于所述单位个移动时间窗口的时长,则所述客户端设备确定所述当前移动时间窗口的请求数为零;

若所述当前时刻与所述第一结束移动时间窗口的结束时刻之间的间隔小于所述单位个移动时间窗口的时长,则所述客户端设备按照第一预置公式计算所述当前移动时间窗口的请求数。

在一些可能的实现方式中,若所述客户端设备确定所述当前移动时间窗口的请求数为零,所述客户端设备根据所述当前移动时间窗口的请求数和所述目标爬取任务的请求数调节所述目标爬取任务的请求发送速度包括:

所述客户端设备判断所述目标爬取任务的请求数是否大于所述移动时间窗口允许的最大请求数;

若所述目标爬取任务的请求数大于所述移动时间窗口允许的最大请求数,则所述客户端设备按照第一间隔发送所述目标爬取任务的全部请求,所述第一间隔由所述移动时间窗口的时长和所述移动时间窗口允许的最大请求数确定;

若所述目标爬取任务的请求数不大于所述移动时间窗口允许的最大请求数,则所述客户端设备按照非间隔模式发送所述目标爬取任务的全部请求。

在一些可能的实现方式中,若所述目标爬取任务的请求数不大于所述移动时间窗口允许的最大请求数,则所述客户端设备按照非间隔模式发送所述目标爬取任务的全部请求之后,还包括:

所述客户端设备将所述目标爬取任务的开始时刻设置为第二结束移动时间窗口的开始时刻;

所述客户端设备将所述目标爬取任务的结束时刻设置为所述第二结束移动时间窗口的结束时刻;

所述客户端设备将所述目标爬取任务的请求数设置为所述第二结束移动时间窗口的请求数。

在一些可能的实现方式中,若所述客户端设备按照第一预置公式计算所述当前移动时间窗口的请求数,所述客户端设备根据所述当前移动时间窗口的请求数和所述目标爬取任务的请求数调节所述目标爬取任务的请求发送速度包括:

所述客户端设备判断所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和是否大于所述移动时间窗口允许的最大请求数;

若所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和不大于所述移动时间窗口允许的最大请求数,则所述客户端设备按照所述非间隔模式发送所述目标爬取任务的全部请求。

在一些可能的实现方式中,若所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和不大于所述移动时间窗口允许的最大请求数,则所述客户端设备按照所述非间隔模式发送所述目标爬取任务的全部请求之后,还包括:

所述客户端设备将所述目标爬取任务的结束时刻设置为第三结束移动时间窗口的结束时刻;

所述客户端设备将相比所述目标爬取任务的结束时刻提前单位个所述移动时间窗口的时长的时刻设置为所述第三结束移动时间窗口的开始时刻;

所述客户端设备将所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和设置为所述第三结束移动时间窗口的请求数。

在一些可能的实现方式中,所述客户端设备判断所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和是否大于所述移动时间窗口允许的最大请求数之后,还包括:

若所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和大于所述移动时间窗口允许的最大请求数,则所述客户端设备按照第二预置公式计算第二间隔,所述第二间隔小于所述第一间隔;

所述客户端设备按照所述第二间隔发送目标数值个所述目标爬取任务的请求,所述目标数值为所述移动时间窗口允许的最大请求数与所述当前移动时间窗口的请求数的差值;

所述客户端设备将所述目标爬取任务剩余的请求作为下一个目标爬取任务继续执行,直至所述目标爬取任务的全部请求发送完毕。

在一些可能的实现方式中,所述客户端设备按照所述第二间隔发送目标数值个所述目标爬取任务的请求之后,所述客户端设备将所述目标爬取任务剩余的请求作为下一个目标爬取任务继续执行之前,还包括:

所述客户端设备将所述当前时刻设置为第四结束移动时间窗口的开始时刻;

所述客户端设备将相比所述当前时刻延后单位个所述移动时间窗口的时长的时刻设置为所述第四结束移动时间窗口的结束时刻;

所述客户端设备将所述目标数值设置为所述第四结束移动时间窗口的请求数。

在一些可能的实现方式中,所述第一预置公式为:

k′=(c/(t2-t1))*(t-(n-t2))

所述k′为所述当前移动时间窗口的请求数;

所述t为所述移动时间窗口的时长;

所述c为所述第一结束移动时间窗口的请求数;

所述t1为所述第一结束移动时间窗口的起始时刻;

所述t2为所述第一结束移动时间窗口的结束时刻;

所述n为所述当前时刻。

在一些可能的实现方式中,所述第二预置公式为:

i′=(t2+t-n)/(k-k′)

所述i′为所述第二间隔;

所述t2为所述第一结束移动时间窗口的结束时刻;

所述k′为所述当前移动时间窗口的请求数;

所述t为所述移动时间窗口的时长;

所述n为所述当前时刻;

所述k为所述移动时间窗口允许的最大请求数。

本发明实施例还提供了一种客户端设备,包括:

第一获取单元,用于获取目标爬取任务;

第二获取单元,用于获取当前移动时间窗口的请求数,所述当前移动时间窗口为以当前时刻作为结束时刻的移动时间窗口;

调节单元,用于根据所述当前移动时间窗口的请求数和所述目标爬取任务的请求数调节所述目标爬取任务的请求发送速度。

在一些可能的实现方式中,所述第二获取单元包括:

第一判断模块,用于判断所述当前时刻与第一结束移动时间窗口的结束时刻之间的间隔是否大于或等于单位个移动时间窗口的时长,所述第一结束移动时间窗口为所述客户端设备执行最后一个爬取任务对应的移动时间窗口;

确定模块,用于若所述当前时刻与所述第一结束移动时间窗口的结束时刻之间的间隔大于或等于所述单位个移动时间窗口的时长,则确定所述当前移动时间窗口的请求数为零;

第一计算模块,用于若所述当前时刻与所述第一结束移动时间窗口的结束时刻之间的间隔小于所述单位个移动时间窗口的时长,则按照第一预置公式计算所述当前移动时间窗口的请求数。

在一些可能的实现方式中,若所述确定模块确定所述当前移动时间窗口的请求数为零,所述调节单元包括:

第二判断模块,用于判断所述目标爬取任务的请求数是否大于所述移动时间窗口允许的最大请求数;

第一发送模块,用于若所述目标爬取任务的请求数大于所述移动时间窗口允许的最大请求数,则按照第一间隔发送所述目标爬取任务的全部请求,所述第一间隔由所述移动时间窗口的时长和所述移动时间窗口允许的最大请求数确定;

第二发送模块,用于若所述目标爬取任务的请求数不大于所述移动时间窗口允许的最大请求数,则按照非间隔模式发送所述目标爬取任务的全部请求。

在一些可能的实现方式中,若所述目标爬取任务的请求数不大于所述移动时间窗口允许的最大请求数,则按照非间隔模式发送所述目标爬取任务的全部请求,所述客户端设备还包括:

第一设置单元,用于将所述目标爬取任务的开始时刻设置为第二结束移动时间窗口的开始时刻;

第二设置单元,用于将所述目标爬取任务的结束时刻设置为所述第二结束移动时间窗口的结束时刻;

第三设置单元,用于将所述目标爬取任务的请求数设置为所述第二结束移动时间窗口的请求数。

在一些可能的实现方式中,若所述第一计算模块按照所述第一预置公式计算所述当前移动时间窗口的请求数,所述调节单元包括:

第三判断模块,用于判断所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和是否大于所述移动时间窗口允许的最大请求数;

第三发送模块,用于若所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和不大于所述移动时间窗口允许的最大请求数,则按照所述非间隔模式发送所述目标爬取任务的全部请求。

在一些可能的实现方式中,若所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和不大于所述移动时间窗口允许的最大请求数,则按照所述非间隔模式发送所述目标爬取任务的全部请求,所述客户端设备还包括:

第四设置单元,用于将所述目标爬取任务的结束时刻设置为第三结束移动时间窗口的结束时刻;

第五设置单元,用于将相比所述目标爬取任务的结束时刻提前单位个所述移动时间窗口的时长的时刻设置为所述第三结束移动时间窗口的开始时刻;

第六设置单元,用于将所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和设置为所述第三结束移动时间窗口的请求数。

在一些可能的实现方式中,所述调节单元还包括:

第二计算模块,用于若所述当前移动时间窗口的请求数与所述目标爬取任务的请求数之和大于所述移动时间窗口允许的最大请求数,则按照第二预置公式计算第二间隔,所述第二间隔小于所述第一间隔;

第四发送模块,用于按照所述第二间隔发送目标数值个所述目标爬取任务的请求,所述目标数值为所述移动时间窗口允许的最大请求数与所述当前移动时间窗口的请求数的差值;

循环单元,用于将所述目标爬取任务剩余的请求作为下一个目标爬取任务继续执行,直至所述目标爬取任务的全部请求发送完毕。

在一些可能的实现方式中,若所述第四发送模块按照所述第二间隔发送目标数值个所述目标爬取任务的请求,所述客户端设备还包括:

第七设置单元,用于将所述当前时刻设置为第四结束移动时间窗口的开始时刻;

第八设置单元,用于将相比所述当前时刻延后单位个所述移动时间窗口的时长的时刻设置为所述第四结束移动时间窗口的结束时刻;

第九设置单元,用于将所述目标数值设置为所述第四结束移动时间窗口的请求数。

在一些可能的实现方式中,所述第一预置公式为:

k′=(c/(t2-t1))*(t-(n-t2))

所述k′为所述当前移动时间窗口的请求数;

所述t为所述移动时间窗口的时长;

所述c为所述第一结束移动时间窗口的请求数;

所述t1为所述第一结束移动时间窗口的起始时刻;

所述t2为所述第一结束移动时间窗口的结束时刻;

所述n为所述当前时刻。

在一些可能的实现方式中,所述第二预置公式为:

i′=(t2+t-n)/(k-k′)

所述i′为所述第二间隔;

所述t2为所述第一结束移动时间窗口的结束时刻;

所述k′为所述当前移动时间窗口的请求数;

所述t为所述移动时间窗口的时长;

所述n为所述当前时刻;

所述k为所述移动时间窗口允许的最大请求数。

本发明实施例还提供了一种客户端设备,包括:

输入装置、输出装置、处理器和存储器;

通过调用所述存储器存储的操作指令,所述处理器用于执行如下步骤:

获取目标爬取任务;

获取当前移动时间窗口的请求数,所述当前移动时间窗口为以当前时刻作为结束时刻的移动时间窗口;

根据所述当前移动时间窗口的请求数和所述目标爬取任务的请求数调节所述目标爬取任务的请求发送速度。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例中,客户端设备获取目标爬取任务,客户端设备获取当前移动时间窗口的请求数,并根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,可以使客户端设备根据不同的情况灵活选用不同的爬取速度,提高爬取效率。

附图说明

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

图2为本发明实施例方法的另一个实施例流程图;

图3是本发明实施例客户端设备的一个实施例的结构示意图;

图4是本发明实施例客户端设备的另一个实施例的结构示意图;

图5是本发明实施例客户端设备的另一个实施例的结构示意图。

具体实施方式

本发明实施例提供了一种数据处理方法和客户端设备,可以使客户端设备灵活选用不同的爬取速度,提高爬取效率。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,网络爬虫在爬取网站时,往往会遇到对请求速度有限制的网站,一般来说,网站往往是通过移动时间窗口来限制网络爬虫的速度,所谓移动时间窗口,也叫时间窗,就是对数据集进行截取,提取时间窗内的数据来进行处理,若网络爬虫所在的ip在移动时间窗口内的请求数大于移动时间窗口允许的最大请求数,则网站将采取反爬虫措施,在移动时间窗口的限制下,采用固定时间间隔的方式进行爬取,固然可以解决上述问题,但是在某些应用场合,用户往往会发起一些零碎的,请求数量不多,但是实时性要求比较高的爬取任务,这时如果还是采用固定时间间隔的方式,将降低爬取的效率,为此,本发明实施例提供了一种数据处理方法和客户端设备,可以使客户端设备灵活选用不同的爬取速度,提高爬取效率。

请参阅图1,本发明实施例方法的一个实施例,包括:

101、客户端设备获取目标爬取任务。

目标爬取任务可以是用户输入的爬取任务,也可以是客户端设备根据设置生成的爬取任务,此处不做太多限定,可以理解的是,目标爬取任务包括至少一个爬取请求。

102、客户端设备获取当前移动时间窗口的请求数。

当前移动时间窗口为以当前时刻作为结束时刻的移动时间窗口,客户端设备获取当前移动时间窗口已发送的请求数。

103、客户端设备根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度。

请求发送速度包括按预置的时间间隔发送请求,或者按非间隔模式发送请求,非间隔模式又分为串行模式和并行模式,串行模式指发完一个请求后立即发送下一个请求,并行模式是指同时发送多个请求,此处不做太多限定。

本实施例中,客户端设备获取目标爬取任务,客户端设备获取当前移动时间窗口的请求数,并根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,可以使客户端设备根据不同的情况灵活选用不同的爬取速度,提高爬取效率。

请参阅图2,本发明实施例方法的另一个实施例,包括:

201、客户端设备获取目标爬取任务。

步骤201与步骤101类似,不再赘述。

202、客户端设备判断当前时刻与第一结束移动时间窗口的结束时刻之间的间隔是否大于或等于单位个移动时间窗口的时长。

客户端设备执行完一个爬取任务后,根据预置的规则记录结束移动时间窗口的开始时刻和结束时刻,以及结束移动时间窗口的请求数,第一结束移动时间窗口为到当前时刻为止,客户端设备执行最后一个爬取任务对应的移动时间窗口。

若当前时刻与第一结束移动时间窗口的结束时刻之间的间隔大于或等于单位个移动时间窗口的时长,则客户端设备执行步骤203和205。

若当前时刻与第一结束移动时间窗口的结束时刻之间的间隔小于单位个移动时间窗口的时长,则客户端设备执行步骤204和211。

203、客户端设备确定当前移动时间窗口的请求数为零。

当前时刻与第一结束移动时间窗口的结束时刻之间的间隔大于或等于单位个移动时间窗口的时长,表示当前移动时间窗口并没有发送请求,故请求数为零。

204、客户端设备按照第一预置公式计算当前移动时间窗口的请求数。

当前时刻与第一结束移动时间窗口的结束时刻之间的间隔大于或等于单位个移动时间窗口的时长,表示当前移动时间窗口发送了请求,可以按照第一预置公式计算当前移动时间窗口的请求数。

需要说明的是,假设爬取的请求间隔为均匀的,第一预置公式可以包括:

k′=(c/(t2-t1))*(t-(n-t2))

k′为当前移动时间窗口的请求数;

t为移动时间窗口的时长;

c为第一结束移动时间窗口的请求数;

t1为第一结束移动时间窗口的起始时刻;

t2为第一结束移动时间窗口的结束时刻;

n为当前时刻。

还需要说明的是,以上公式仅为一个示例,实际实现中也可以使用方法进行计算,或对以上公式进行变形,此处不做太多限定。

205、客户端设备判断目标爬取任务的请求数是否大于移动时间窗口允许的最大请求数;

若目标爬取任务的请求数大于移动时间窗口允许的最大请求数,则执行步骤206至209。

若目标爬取任务的请求数不大于移动时间窗口允许的最大请求数,则执行步骤210。

206、客户端设备按照第一间隔发送目标爬取任务的全部请求。

第一间隔由移动时间窗口的时长和移动时间窗口允许的最大请求数确定,可以由移动时间窗口允许的最大请求数确定除以移动时间窗口的时长得到第一间隔。

207、客户端设备将目标爬取任务的开始时刻设置为第二结束移动时间窗口的开始时刻。

208、客户端设备将目标爬取任务的结束时刻设置为第二结束移动时间窗口的结束时刻。

209、客户端设备将目标爬取任务的请求数设置为第二结束移动时间窗口的请求数。

客户端设备在执行完目标爬取任务后,都会记录结束移动时间窗口的开始时刻,结束时刻和请求数,可以理解的是,根据步骤207和208设置的第二结束移动时间窗口的开始时刻和结束时刻之间的时长,并不一定等于单位个移动时间窗口的时长。

210、客户端设备按照非间隔模式发送目标爬取任务的全部请求。

若目标爬取任务的请求数不大于移动时间窗口允许的最大请求数,说明目标爬取任务的请求全部发送完,也不会超出移动时间窗口的限制,可以选择非间隔模式发送目标爬取任务的全部请求。

还需要说明的是,除了使用非间隔模式外,客户端设备也可以预置小于第一间隔的时间间隔发送目标爬取任务,此处不做太多限定。

211、客户端设备判断当前移动时间窗口的请求数与目标爬取任务的请求数之和是否大于移动时间窗口允许的最大请求数。

若当前移动时间窗口的请求数与目标爬取任务的请求数之和不大于移动时间窗口允许的最大请求数,执行步骤212至215。

若当前移动时间窗口的请求数与目标爬取任务的请求数之和大于移动时间窗口允许的最大请求数,执行步骤216至221。

212、客户端设备按照非间隔模式发送目标爬取任务的全部请求。

步骤212与步骤210类似,不再赘述。

213、客户端设备将目标爬取任务的结束时刻设置为第三结束移动时间窗口的结束时刻。

214、客户端设备将相比目标爬取任务的结束时刻提前单位个移动时间窗口的时长的时刻设置为第三结束移动时间窗口的开始时刻。

215、客户端设备将当前移动时间窗口的请求数与目标爬取任务的请求数之和设置为第三结束移动时间窗口的请求数。

216、客户端设备按照第二预置公式计算第二间隔。

第二间隔小于第一间隔,第二预置公式可以包括:

i′=(t2+t-n)/(k-k′)

i′为第二间隔;

t2为第一结束移动时间窗口的结束时刻;

k′为当前移动时间窗口的请求数;

t为移动时间窗口的时长;

n为当前时刻;

k为移动时间窗口允许的最大请求数。

217、客户端设备按照第二间隔发送目标数值个目标爬取任务的请求。

目标数值为移动时间窗口允许的最大请求数与当前移动时间窗口的请求数的差值。

218、客户端设备将当前时刻设置为第四结束移动时间窗口的开始时刻。

219、客户端设备将相比当前时刻延后单位个移动时间窗口的时长的时刻设置为第四结束移动时间窗口的结束时刻。

220、客户端设备将目标数值设置为第四结束移动时间窗口的请求数。

221、客户端设备将目标爬取任务剩余的请求作为下一个目标爬取任务继续执行,直至目标爬取任务的全部请求发送完毕。

下一个目标爬取任务可以回到步骤201继续执行,也可以根据客户端的设置,在已知下一个目标爬取任务的开始时刻与第四结束移动时间窗口的结束时刻之间的间隔小于单位个移动时间窗口的时长的情况下,直接回到步骤204继续执行,此处不做太多限定。

本实施例中,客户端设备获取目标爬取任务,客户端设备获取当前移动时间窗口的请求数,并根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,可以使客户端设备根据不同的情况灵活选用不同的爬取速度,提高爬取效率。

其次,本实施例中,细化了如何获取当前移动时间窗口的请求数,以及如何根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求速度,并区分了多种情况进行详细说明,进一步完善了方案的实施方式。

最后,本实施例还提供第一预置公式和第二预置公式来计算当前移动时间窗口的请求数和第二间隔,丰富了本发明实施例的实现方式。

以上是对本发明实施例方法的实施例的介绍,下面将从装置的角度对本发明实施例进行详细的说明。

请参阅图3,本发明实施例客户端设备的一个实施例包括:

第一获取单元301,用于获取目标爬取任务,具体可用于执行图1的步骤101,不再赘述。

第二获取单元302,用于获取当前移动时间窗口的请求数,具体可用于执行图1的步骤102,不再赘述。

调节单元303,用于根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,具体可用于执行图1的步骤103,不再赘述。

本实施例中,第一获取单元301获取目标爬取任务,第二获取单元302获取当前移动时间窗口的请求数,调节单元303根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,可以使客户端设备根据不同的情况灵活调节目标爬取任务的请求发送速度,提高爬取效率。

请参阅图4,本发明实施例客户端设备的另一个实施例包括:

第一获取单元401,用于获取目标爬取任务,具体可用于执行图2的步骤101,不再赘述。

第二获取单元402,用于获取当前移动时间窗口的请求数,具体地,第二获取单元402包括:

第一判断模块4021,用于判断当前时刻与第一结束移动时间窗口的结束时刻之间的间隔是否大于或等于单位个移动时间窗口的时长,具体可用于执行图2的步骤202,不再赘述。

确定模块4022,用于若当前时刻与第一结束移动时间窗口的结束时刻之间的间隔大于或等于单位个移动时间窗口的时长,则确定当前移动时间窗口的请求数为零,具体可用于执行图2的步骤203,不再赘述。

第一计算模块4023,用于若当前时刻与第一结束移动时间窗口的结束时刻之间的间隔小于单位个移动时间窗口的时长,则按照第一预置公式计算当前移动时间窗口的请求数,具体可用于执行图2的步骤204,不再赘述。

调节单元403,用于根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,具体地,调节单元403包括:

第二判断模块40301,用于判断目标爬取任务的请求数是否大于移动时间窗口允许的最大请求数,具体可用于执行图2的步骤203,不再赘述。

第一发送模块40303,用于若目标爬取任务的请求数大于移动时间窗口允许的最大请求数,则按照第一间隔发送目标爬取任务的全部请求,具体可用于执行图2的步骤210,不再赘述。

第二发送模块40302,用于若目标爬取任务的请求数不大于移动时间窗口允许的最大请求数,则按照非间隔模式发送目标爬取任务的全部请求,具体可用于执行图2的步骤206,不再赘述。

第三判断模块40304,用于判断当前移动时间窗口的请求数与目标爬取任务的请求数之和是否大于移动时间窗口允许的最大请求数,具体可用于执行图2的步骤211,不再赘述。

第三发送模块40305,用于若当前移动时间窗口的请求数与目标爬取任务的请求数之和不大于移动时间窗口允许的最大请求数,则按照非间隔模式发送目标爬取任务的全部请求,具体可用于执行图2的步骤212,不再赘述。

第二计算模块40306,用于若当前移动时间窗口的请求数与目标爬取任务的请求数之和大于移动时间窗口允许的最大请求数,则按照第二预置公式计算第二间隔,具体可用于执行图2的步骤216,不再赘述。

第四发送模块40307,用于按照第二间隔发送目标数值个目标爬取任务的请求,具体可用于执行图2的步骤217,不再赘述。

第一设置单元404,用于将目标爬取任务的开始时刻设置为第二结束移动时间窗口的开始时刻,具体可用于执行图2的步骤207,不再赘述。

第二设置单元405,用于将目标爬取任务的结束时刻设置为第二结束移动时间窗口的结束时刻,具体可用于执行图2的步骤208,不再赘述。

第三设置单元406,用于将目标爬取任务的请求数设置为第二结束移动时间窗口的请求数,具体可用于执行图2的步骤209,不再赘述。

第四设置单元407,用于将目标爬取任务的结束时刻设置为第三结束移动时间窗口的结束时刻,具体可用于执行图2的步骤213,不再赘述。

第五设置单元408,用于将相比目标爬取任务的结束时刻提前单位个移动时间窗口的时长的时刻设置为第三结束移动时间窗口的开始时刻,具体可用于执行图2的步骤214,不再赘述。

第六设置单元409,用于将当前移动时间窗口的请求数与目标爬取任务的请求数之和设置为第三结束移动时间窗口的请求数,具体可用于执行图2的步骤215,不再赘述。

第七设置单元410,用于将当前时刻设置为第四结束移动时间窗口的开始时刻,具体可用于执行图2的步骤218,不再赘述。

第八设置单元411,用于将相比当前时刻延后单位个移动时间窗口的时长的时刻设置为第四结束移动时间窗口的结束时刻,具体可用于执行图2的步骤219,不再赘述。

第九设置单元412,用于将目标数值设置为第四结束移动时间窗口的请求数,具体可用于执行图2的步骤220,不再赘述。

循环单元413,用于将目标爬取任务剩余的请求作为下一个目标爬取任务继续执行,直至目标爬取任务的全部请求发送完毕,具体可用于执行图2的步骤221,不再赘述。

本实施例中,客户端设备获取目标爬取任务,客户端设备获取当前移动时间窗口的请求数,并根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,可以使客户端设备根据不同的情况灵活选用不同的爬取速度,提高爬取效率。

其次,本实施例中,细化了如何获取当前移动时间窗口的请求数,以及如何根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求速度,并区分了多种情况进行详细说明,进一步完善了方案的实施方式。

最后,本实施例还提供第一预置公式和第二预置公式来计算当前移动时间窗口的请求数和第二间隔,丰富了本发明实施例的实现方式。

以上从模块化功能实体的角度对本发明实施例中的客户端设备进行描述,下面从硬件处理的角度对本发明实施例的客户端设备进行描述。

请参阅图5,本发明实施例中客户端设备的另一实施例包括:

输入装置501、输出装置502、处理器503和存储器504(其中客户端设备的处理器801的数量可以一个或多个,图5中以一个处理器501为例)。在本发明的一些实施例中,输入装置501、输出装置502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。

其中,通过调用存储器504存储的操作指令,处理器503用于执行如下步骤:

获取目标爬取任务;

获取当前移动时间窗口的请求数,当前移动时间窗口为以当前时刻作为结束时刻的移动时间窗口;

根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度。

本实施例中,客户端设备获取目标爬取任务,客户端设备获取当前移动时间窗口的请求数,并根据当前移动时间窗口的请求数和目标爬取任务的请求数调节目标爬取任务的请求发送速度,可以使客户端设备根据不同的情况灵活选用不同的爬取速度,提高爬取效率。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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