调度http代理的方法和装置制造方法

文档序号:7802121阅读:165来源:国知局
调度http代理的方法和装置制造方法
【专利摘要】本发明提供了一种调度HTTP代理的方法和装置,该方法包括:接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL;在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;在第一代理节点为第一次被使用的情况下,判定爬虫访问所述标URL需要等待的时长为0;根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。该调度HTTP代理的方法,可提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
【专利说明】调度HTTP代理的方法和装置
【技术领域】
[0001]本发明涉及互联网领域,特别地,涉及一种调度HTTP代理的方法和装置。
【背景技术】
[0002]爬虫是搜索引擎技术的基础组成部分,爬虫从一个或若干个初始网页的URL (Uniform Resource Locator,统一资源定位符)开始,获得初始网页上的URL,在抓取网页数据的过程中,根据预置的网页抓取策略不断地从当前页面上抽取新的URL放入队列,直到满足某种停止条件后将抓取到的网页数据存储于搜索引擎的服务器中,以达到可以加快用户的搜索速度的目的。
[0003]分布式网络爬虫系统包含多个爬虫,这些爬虫可能分布在同一个局域网之中,也可能分布在不同的地理位置,根据爬虫分散的程度不同,分布式网络爬虫系统可以分为以下两大类:基于局域网的分布式网络爬虫系统和基于广域网的分布式爬虫系统。
[0004]无论是上述哪种类型的爬虫系统,其包含的爬虫的IP地址资源是有限的,然而大多数网站会对爬虫的网页抓取行为进行限制,比如很多网站会设置限制访问时间间隔,该限制访问时间间隔可以理解为限制同一 IP地址访问该网站中的URL的时间间隔不可超过预定时间(比如可设置为30秒),若超过该预定时间(30秒),则会显示验证码,此时则需要输入正确的验证码后才可以继续访问该URL,或者直接将该IP地址屏蔽掉,以禁止该IP地址再次访问该网站的URL。
[0005]在上述爬虫的IP地址资源有限且网站会对爬虫的IP地址进行限制的情况下,会增加爬虫访问网站的时间,降低爬虫抓取网页数据的成功率,进而降低爬虫抓取网页数据的效率。
[0006]在此情况下,现有技术中也有爬虫利用HTTP代理的方式来访问网站的URL,以使用HTTP代理的IP地址来访问网站URL,在一定程度上规避上述网站对爬虫IP地址限制的问题,但是当同一 HTTP代理频繁的访问网站URL,网站也可能会限制该HTTP代理对该网站的访问(比如显示验证码等),因此也会影响抓取网页数据的效率。

【发明内容】

[0007]本发明所要解决的技术问题是提供一种调度HTTP代理的方法和装置,通过合理调度已有的HTTP代理资源,可为爬虫提供较优化的代理,减少爬虫访问URL的等待时间,且可有效规避网站预先设置的限制访问时间间隔的限制,提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
[0008]为了解决上述问题,本发明提供了一种调度HTTP代理的方法,为每个设置限制访问时间间隔的网站预先设置一个HTTP代理资源的环形链表,每个环形链表包括η个代理节点,其中η为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+Ι次访问该网站的URL之间需要等待的时间,I ;
[0009]所述方法包括:
[0010]接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL ;
[0011]在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;
[0012]在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为O ;
[0013]根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。
[0014]进一步的,将更新后的数据反馈给爬虫后,还包括:[0015]按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
[0016]进一步的,所述预设方向为顺时针或逆时针。
[0017]进一步的,所述方法还包括:
[0018]在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长;
[0019]根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
[0020]进一步的,设置所述第一代理节点被爬虫访问的时间点为timed0l,第一代理节点的延时访问时长为timeholdp当前时间点为timenow:;
[0021]所述根据第一代理节点被爬虫使用的时间点、第一代理节点的延时访问时长与当前时间点获取爬虫访问所述第一 URL需要等待的时长,具体为:
[0022]若计算得出timedc^+timehoWtimenoWi,则获取到的需要等待的时长为O ;
[0023]若计算得出Umedo^timehold1Himenow1,则获取到的需要等待的时长为(timedoj+timeholdj) -t Imenow1。
[0024]进一步的,所述根据上述获取结果及判定结果更新该第一代理节点的数据,具体为:
[0025]将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
[0026]将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
[0027]另一方面,还提供了一种调度HTTP代理的装置,每个设置限制访问时间间隔的网站对应一个HTTP代理资源的环形链表,每个环形链表包括η个代理节点,其中η为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+Ι次访问该网站的URL之间需要等待的时间,k ^ I ;
[0028]所述装置包括:[0029]第一判定单元,用于接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL ;
[0030]第一获取单元,用于在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;
[0031]第二判定单元,用于在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为O ;
[0032]更新反馈单元,用于根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。
[0033]进一步的,所述装置还包括:
[0034]设置单元,用于按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。[0035]进一步的,所述预设方向为顺时针或逆时针。
[0036]进一步的,所述装置还包括:
[0037]提取单元,用于在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长;
[0038]第二获取单元,用于根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
[0039]进一步的,所述第一代理节点被爬虫访问的时间点为timed0l,第一代理节点的延时访问时长为timeholdp当前时间点为timenow:;
[0040]所述第二获取单元,具体用于:
[0041]若计算得出timedc^+timehoWtimenoWi,则获取到的需要等待的时长为O ;
[0042]若计算得出timedOi+tIimehold1Himenow1,则获取到的需要等待的时长为(timedoj+timeholdj) -t Imenow1。
[0043]进一步的,所述更新反馈单元,具体用于:
[0044]将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
[0045]将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
[0046]与现有技术相比,上述技术方案中的一个技术方案具有以下优点:
[0047]本发明调度HTTP代理的方法和装置的实施例中,通过合理调度已有的HTTP代理资源,可为爬虫提供较优化的代理,减少爬虫访问URL的等待时间,且可有效规避网站预先设置的限制访问时间间隔的限制,提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
【专利附图】

【附图说明】
[0048]图1是本发明调度HTTP代理的方法实施例一的流程示意图;[0049]图2是图1所示的实施例一中的环形链表的示意图;
[0050]图3是本发明调度HTTP代理的装置实施例一的结构示意图。
【具体实施方式】
[0051]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0052]参看图1,为本发明调度HTTP代理的方法实施例一的流程示意图。在该实施例中,为每个设置限制访问时间间隔的网站预先设置一个HTTP代理资源的环形链表,有很多网站都会针对爬虫预先设置限制访问时间间隔,比如新浪网站设置的限制访问时间间隔为30秒,也就是说,同一 IP地址访问新浪网站的URL的时间间隔不能超过30秒,若超过该限制访问时间间隔(30秒)后,该网站可能会显示一个验证码,此时则需要输入正确的验证码后才可以继续访问该网站的URL。
[0053]每个环形链表包括η个代理节点,其中η为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息(比如包括该代理节点的IP地址、端口号、账号、密码等信息)、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长。
[0054]其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+Ι次访问该网站的URL之间需要等待的时间且k > 1,比如该代理节点第I次访问搜狐网站的URL与该代理节点第2次访问搜狐网站的URL之间需要等待的时间,这个需要等待的时间可为根据该网站的限制访问时间间隔计算出来的。
[0055]所述方法包括如下步骤:
[0056]SlOl,接收爬虫请求获得HTTP代理的信息,该请求获得HTTP代理的信息中包括爬虫将要访问的目标URL,然后根据接收到的信息判定该目标URL所属的网站。
[0057]比如,接收到的爬虫请求获得HTTP代理的信息中包括的将要访问的目标URL为http://weib0.com/,贝U可判定该目标URL所属的网站为新浪网。
[0058]S102,在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点。
[0059]在该步骤中可包括一个判断的步骤,即判断该爬虫是否为第一次请求获得HTTP代理。
[0060]在该爬虫为第一次请求获得HTTP代理的情况下,比如,SlOl判定出的所属网站为新浪网,则在新浪网所对应的环形链表中任意选取一个代理节点作为第一代理节点,并获取当前时间点(比如为11点40分10秒)。
[0061]S103,在第一代理节点为第一次被使用的情况下,判定爬虫访问目标URL需要等待的时长为O秒。
[0062]在该步骤中也可包括一个判断步骤,即判断该第一代理节点是否为第一次被使用,若判断结果为是,则直接判定该爬虫访问目标URL需要等待的时长为O秒,即无需等待直接访问目标URL。
[0063]S104,根据上述获取结果及判定结果更新该第一代理节点的数据,也就是将S102获取的当前时间点和S103判定的爬虫访问目标URL需要等待的时长来更新该第一代理节点的数据。
[0064]该更新主要是更新该第一代理节点数据中的该代理节点的延时访问时长和该代理节点被爬虫使用的时间点,然后将更新后的数据反馈给爬虫,以便爬虫在等待了该爬虫访问目标URL需要等待的时长后(也就是等待时间为O秒)来访问目标URL,且当爬虫再次使用该第一代理节点访问所属网站的URL时,根据更新后的第一代理节点的节点数据访问URL。
[0065]具体而言,将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点,将该第一代理节点的延时访问时长更新为爬虫访问目标URL需要等待的时长(即O)与该网站的限制访问时间间隔之和的值。
[0066]在本实施例中,在S104后,也就是将更新后的数据反馈给爬虫之后,还可包括:按预设方向将第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。其中,预设方向可为顺时针或逆时针,在本实施例中采用顺时针的方向且HTTP代理节点的数量为8个,环形链表可参看图2所示。[0067]通过上述方法实施例,在爬虫为第一次请求获得HTTP代理且该第一代理节点为第一次被使用的情况下,可根据接收爬虫请求获得HTTP代理的信息的当前时间点、判定出的爬虫访问目标URL需要等待的时长及该网站的限制访问时间间隔,来更新该第一代理节点的节点数据并反馈给爬虫,以便爬虫在等待了该爬虫访问目标URL需要等待的时长后(也就是等待时间为O)来访问目标URL,且当爬虫再次使用该第一代理节点访问所属网站的URL时,根据更新后的第一代理节点的节点数据访问该URL。
[0068]并且,将环形链表中的下一个代理节点(也就是第二代理节点)设置为新的第一代理节点,当该爬虫再次请求获得HTTP代理时,直接将该新的第一代理节点(也就是第二代理节点)分配给爬虫使用。
[0069]上述本实施例的方法,通过合理调度已有的HTTP代理资源,可为爬虫提供较优化的代理,也就是可减少爬虫访问URL的等待时间,且可有效规避网站预先设置的限制访问时间间隔的限制,提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
[0070]在本实施例中,在该第一代理节点并非第一次被使用的情况下,则可提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长,然后根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问目标URL需要等待的时长。
[0071]具体而言,可先设置第一代理节点被爬虫访问的时间点为timed0l,第一代理节点的延时访问时长为timeholdp当前时间点为Umenow1,然后比较Umedo1及Umehold1的和与timenoWi的大小。
[0072]若计算得出timedOi及Umehold1的和小于Umenow1,也就是Umedo^timehoWtimenow1,则获取到的需要等待的时长为O。
[0073]比如,timed0l为11点30分10秒,Umehold1为40秒(比如其中的访问网站的限制访问时间间隔为20秒),Umenow1为11点30分55秒,计算得出timedc^+timehold,Umenow1,则可获取到的需要等待的时长为O。
[0074]若计算得出timedOi及Umehold1的和大于tIimenow1, 也就是timedOi+tIimehold1Himenow1,则获取到的需要等待的时长为(timedoj+timeholdj) -t Imenow1。
[0075]比如,timed0l为11点30分10秒,tImehold1为40秒(比如其中的访问网站的限制访问时间间隔为20秒),Umenow1为11点30分30秒,计算得出timedc^+timehoI(^timenow1,则可获取到的需要等待的时长为(timedoi+timeholdi)-timenoWi = 20 秒。
[0076]进一步的,在此种情况下,更新该第一代理节点的数据,具体可为:
[0077]将该第一代理节点被爬虫访问的时间点timed0l更新为获取到的当前时间点11点30分30秒;
[0078]将该第一代理节点的延时访问时长Umehold1更新为爬虫访问目标URL需要等待的时长(20秒)与该网站的限制访问时间间隔(20秒)之和的值,即40秒。
[0079]上述本实施例的方法,在该第一代理节点并非第一次被使用的情况下,根据各网站的限制访问时间间隔的不同,有效控制同一 HTTP代理节点访问同一网站的URL的频率,解决现有技术中网站对IP进彳丁限制的问题,提闻爬虫访问网站的URL的效率,进而提闻爬虫抓取网页数据的效率。
[0080] 本发明还提供了一种与上述调度HTTP代理的方法相对应的装置,参看图3所示,为本发明调度HTTP代理的装置实施例一的结构示意图。
[0081]其中,每个限制访问时间间隔的网站都对应一个HTTP代理资源的环形链表,每个环形链表包括η个代理节点,其中η为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+Ι次访问该网站的URL之间需要等待的时间,k≥I。
[0082]所述装置包括:
[0083]第一判定单元31,用于接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站。
[0084]其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL。
[0085]第一获取单元32,用于在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点。
[0086]第二判定单元33,用于在第一代理节点为第一次被使用的情况下,判定爬虫访问目标URL需要等待的时长为O。
[0087]更新反馈单元34,用于根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问目标URL。
[0088]进一步的,在本实施例中,该装置还包括:
[0089]设置单元,用于按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
[0090] 其中,预设方向可为顺时针,也可为逆时针,在本实施例采用是顺时针。
[0091]在本实施例中,在该第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长,然后根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问目标URL需要等待的时长。
[0092]进一步的,在本实施例中,该装置还包括:
[0093]提取单元,用于在第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长。
[0094]第二获取单元,用于根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问目标URL需要等待的时长。
[0095]进一步的,比如第一代理节点被爬虫访问的时间点为Umedo1,第一代理节点的延时访问时长为timeholdp当前时间点为timenow:;
[0096]则所述第二获取单元,具体用于:[0097]若计算得出timedc^+timehoWtimenoWi,则获取到的需要等待的时长为O ;
[0098]若计算得出Umedo^timehold1Himenow1,贝丨J获取到的需要等待的时长为(timedoj+timeholdj) -t Imenow1。
[0099]进一步的,在本实施例中,更新反馈单元34可具体用于:
[0100]将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
[0101]将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
[0102]上述本实施例的装置,在该第一代理节点并非第一次被使用的情况下,根据各网站的限制访问时间间隔的不同,有效控制同一 HTTP代理节点访问同一网站的URL的频率,解决现有技术中网站对IP进彳丁限制的问题,提闻爬虫访问网站的URL的效率,进而提闻爬虫抓取网页数据的效率。
[0103]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0104]以上对本发明所提供的一种调度HTTP代理的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种调度HTTP代理的方法,其特征在于,为每个设置限制访问时间间隔的网站预先设置一个HTTP代理资源的环形链表,每个环形链表包括η个代理节点,其中η为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为O,该代理节点的延时访问时长为该代理节点在第k次和第k+Ι次访问该网站的URL之间需要等待的时间,k ^ I ; 所述方法包括: 接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL ; 在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点; 在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为O ; 根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。
2.如权利要求1所述的方法,其特征在于,将更新后的数据反馈给爬虫后,还包括: 按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
3.如权利要求2所述的方法,其特征在于,所述预设方向为顺时针或逆时针。
4.如权利要求1所述的方法,其特征在于,还包括: 在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长; 根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
5.如权利要求4所述的方法,其特征在于,设置所述第一代理节点被爬虫访问的时间点为Umedo1,第一代理节点的延时访问时长为timeholc^,当前时间点为Umenow1 ; 所述根据第一代理节点被爬虫使用的时间点、第一代理节点的延时访问时长与当前时间点获取爬虫访问所述第一 URL需要等待的时长,具体为: 若计算得出timedc^+timehold,Umenow1,则获取到的需要等待的时长为O ; 若计算得出timedc^+tIimehold1Himenow1,则获取到的需要等待的时长为(timedoj+timeholdj) -t Imenow1。
6.如权利要求1或5所述的方法,其特征在于,所述根据上述获取结果及判定结果更新该第一代理节点的数据,具体为: 将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点; 将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
7.一种调度HTTP代理的装置,其特征在于,每个设置限制访问时间间隔的网站对应一个HTTP代理资源的环形链表,每个环形链表包括η个代理节点,其中η为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为O,该代理节点的延时访问时长为该代理节点在第k次和第k+Ι次访问该网站的URL之间需要等待的时间,k ≥1 ; 所述装置包括: 第一判定单元,用于接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL ; 第一获取单元,用于在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点; 第二判定单元,用于在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为O ; 更新反馈单元,用于根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。
8.如权利要求7所述的装置,其特征在于,还包括: 设置单元,用于按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
9.如权利要求8所述的装置,其特征在于,所述预设方向为顺时针或逆时针。
10.如权利要求7所述的装置,其特征在于,还包括: 提取单元,用于在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长; 第二获取单元,用于根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
11.如权利要求10所述的装置,其特征在于,所述第一代理节点被爬虫访问的时间点为Wmedo1,第一代理节点的延时访问时长为timeholdp当前时间点为Umenow1 ; 所述第二获取单元,具体用于: 若计算得出timedc^+timehold,Umenow1,则获取到的需要等待的时长为O ; 若计算得出timedc^+tIimehold1Himenow1,则获取到的需要等待的时长为(timedoj+timeholdj) -t Imenow1。
12.如权利要求7所述的装置,其特征在于, 所述更新反馈单元,具体用于: 将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点; 将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
【文档编号】H04L29/06GK103914568SQ201410168725
【公开日】2014年7月9日 申请日期:2014年4月24日 优先权日:2014年4月24日
【发明者】何培林, 汤伟宾, 章正道, 林胜通 申请人:厦门市美亚柏科信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1