CN103914568B - 调度http代理的方法和装置 - Google Patents
调度http代理的方法和装置 Download PDFInfo
- Publication number
- CN103914568B CN103914568B CN201410168725.1A CN201410168725A CN103914568B CN 103914568 B CN103914568 B CN 103914568B CN 201410168725 A CN201410168725 A CN 201410168725A CN 103914568 B CN103914568 B CN 103914568B
- Authority
- CN
- China
- Prior art keywords
- node
- agent
- reptile
- time
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本发明提供了一种调度HTTP代理的方法和装置,该方法包括:接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL;在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;在第一代理节点为第一次被使用的情况下,判定爬虫访问所述标URL需要等待的时长为0;根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。该调度HTTP代理的方法,可提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
Description
技术领域
本发明涉及互联网领域,特别地,涉及一种调度HTTP代理的方法和装置。
背景技术
爬虫是搜索引擎技术的基础组成部分,爬虫从一个或若干个初始网页的URL(Uniform Resource Locator,统一资源定位符)开始,获得初始网页上的URL,在抓取网页数据的过程中,根据预置的网页抓取策略不断地从当前页面上抽取新的URL放入队列,直到满足某种停止条件后将抓取到的网页数据存储于搜索引擎的服务器中,以达到可以加快用户的搜索速度的目的。
分布式网络爬虫系统包含多个爬虫,这些爬虫可能分布在同一个局域网之中,也可能分布在不同的地理位置,根据爬虫分散的程度不同,分布式网络爬虫系统可以分为以下两大类:基于局域网的分布式网络爬虫系统和基于广域网的分布式爬虫系统。
无论是上述哪种类型的爬虫系统,其包含的爬虫的IP地址资源是有限的,然而大多数网站会对爬虫的网页抓取行为进行限制,比如很多网站会设置限制访问时间间隔,该限制访问时间间隔可以理解为限制同一IP地址访问该网站中的URL的时间间隔不可超过预定时间(比如可设置为30秒),若超过该预定时间(30秒),则会显示验证码,此时则需要输入正确的验证码后才可以继续访问该URL,或者直接将该IP地址屏蔽掉,以禁止该IP地址再次访问该网站的URL。
在上述爬虫的IP地址资源有限且网站会对爬虫的IP地址进行限制的情况下,会增加爬虫访问网站的时间,降低爬虫抓取网页数据的成功率,进而降低爬虫抓取网页数据的效率。
在此情况下,现有技术中也有爬虫利用HTTP代理的方式来访问网站的URL,以使用HTTP代理的IP地址来访问网站URL,在一定程度上规避上述网站对爬虫IP地址限制的问题,但是当同一HTTP代理频繁的访问网站URL,网站也可能会限制该HTTP代理对该网站的访问(比如显示验证码等),因此也会影响抓取网页数据的效率。
发明内容
本发明所要解决的技术问题是提供一种调度HTTP代理的方法和装置,通过合理调度已有的HTTP代理资源,可为爬虫提供较优化的代理,减少爬虫访问URL的等待时间,且可有效规避网站预先设置的限制访问时间间隔的限制,提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
为了解决上述问题,本发明提供了一种调度HTTP代理的方法,为每个设置限制访问时间间隔的网站预先设置一个HTTP代理资源的环形链表,每个环形链表包括n个代理节点,其中n为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+1次访问该网站的URL之间需要等待的时间,k≥1;
所述方法包括:
接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL;
在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;
在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为0;
根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。
进一步的,将更新后的数据反馈给爬虫后,还包括:
按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
进一步的,所述预设方向为顺时针或逆时针。
进一步的,所述方法还包括:
在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长;
根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
进一步的,设置所述第一代理节点被爬虫访问的时间点为timedo1,第一代理节点的延时访问时长为timehold1,当前时间点为timenow1;
所述根据第一代理节点被爬虫使用的时间点、第一代理节点的延时访问时长与当前时间点获取爬虫访问所述第一URL需要等待的时长,具体为:
若计算得出timedo1+timehold1<timenow1,则获取到的需要等待的时长为0;
若计算得出timedo1+timehold1>timenow1,则获取到的需要等待的时长为(timedo1+timehold1)-timenow1。
进一步的,所述根据上述获取结果及判定结果更新该第一代理节点的数据,具体为:
将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
另一方面,还提供了一种调度HTTP代理的装置,每个设置限制访问时间间隔的网站对应一个HTTP代理资源的环形链表,每个环形链表包括n个代理节点,其中n为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+1次访问该网站的URL之间需要等待的时间,k≥1;
所述装置包括:
第一判定单元,用于接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL;
第一获取单元,用于在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;
第二判定单元,用于在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为0;
更新反馈单元,用于根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL。
进一步的,所述装置还包括:
设置单元,用于按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
进一步的,所述预设方向为顺时针或逆时针。
进一步的,所述装置还包括:
提取单元,用于在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长;
第二获取单元,用于根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
进一步的,所述第一代理节点被爬虫访问的时间点为timedo1,第一代理节点的延时访问时长为timehold1,当前时间点为timenow1;
所述第二获取单元,具体用于:
若计算得出timedo1+timehold1<timenow1,则获取到的需要等待的时长为0;
若计算得出timedo1+timehold1>timenow1,则获取到的需要等待的时长为(timedo1+timehold1)-timenow1。
进一步的,所述更新反馈单元,具体用于:
将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
与现有技术相比,上述技术方案中的一个技术方案具有以下优点:
本发明调度HTTP代理的方法和装置的实施例中,通过合理调度已有的HTTP代理资源,可为爬虫提供较优化的代理,减少爬虫访问URL的等待时间,且可有效规避网站预先设置的限制访问时间间隔的限制,提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
附图说明
图1是本发明调度HTTP代理的方法实施例一的流程示意图;
图2是图1所示的实施例一中的环形链表的示意图;
图3是本发明调度HTTP代理的装置实施例一的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参看图1,为本发明调度HTTP代理的方法实施例一的流程示意图。在该实施例中,为每个设置限制访问时间间隔的网站预先设置一个HTTP代理资源的环形链表,有很多网站都会针对爬虫预先设置限制访问时间间隔,比如新浪网站设置的限制访问时间间隔为30秒,也就是说,同一IP地址访问新浪网站的URL的时间间隔不能超过30秒,若超过该限制访问时间间隔(30秒)后,该网站可能会显示一个验证码,此时则需要输入正确的验证码后才可以继续访问该网站的URL。
每个环形链表包括n个代理节点,其中n为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息(比如包括该代理节点的IP地址、端口号、账号、密码等信息)、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长。
其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+1次访问该网站的URL之间需要等待的时间且k≥1,比如该代理节点第1次访问搜狐网站的URL与该代理节点第2次访问搜狐网站的URL之间需要等待的时间,这个需要等待的时间可为根据该网站的限制访问时间间隔计算出来的。
所述方法包括如下步骤:
S101,接收爬虫请求获得HTTP代理的信息,该请求获得HTTP代理的信息中包括爬虫将要访问的目标URL,然后根据接收到的信息判定该目标URL所属的网站。
比如,接收到的爬虫请求获得HTTP代理的信息中包括的将要访问的目标URL为http://weibo.com/,则可判定该目标URL所属的网站为新浪网。
S102,在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点。
在该步骤中可包括一个判断的步骤,即判断该爬虫是否为第一次请求获得HTTP代理。
在该爬虫为第一次请求获得HTTP代理的情况下,比如,S101判定出的所属网站为新浪网,则在新浪网所对应的环形链表中任意选取一个代理节点作为第一代理节点,并获取当前时间点(比如为11点40分10秒)。
S103,在第一代理节点为第一次被使用的情况下,判定爬虫访问目标URL需要等待的时长为0秒。
在该步骤中也可包括一个判断步骤,即判断该第一代理节点是否为第一次被使用,若判断结果为是,则直接判定该爬虫访问目标URL需要等待的时长为0秒,即无需等待直接访问目标URL。
S104,根据上述获取结果及判定结果更新该第一代理节点的数据,也就是将S102获取的当前时间点和S103判定的爬虫访问目标URL需要等待的时长来更新该第一代理节点的数据。
该更新主要是更新该第一代理节点数据中的该代理节点的延时访问时长和该代理节点被爬虫使用的时间点,然后将更新后的数据反馈给爬虫,以便爬虫在等待了该爬虫访问目标URL需要等待的时长后(也就是等待时间为0秒)来访问目标URL,且当爬虫再次使用该第一代理节点访问所属网站的URL时,根据更新后的第一代理节点的节点数据访问URL。
具体而言,将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点,将该第一代理节点的延时访问时长更新为爬虫访问目标URL需要等待的时长(即0)与该网站的限制访问时间间隔之和的值。
在本实施例中,在S104后,也就是将更新后的数据反馈给爬虫之后,还可包括:按预设方向将第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。其中,预设方向可为顺时针或逆时针,在本实施例中采用顺时针的方向且HTTP代理节点的数量为8个,环形链表可参看图2所示。
通过上述方法实施例,在爬虫为第一次请求获得HTTP代理且该第一代理节点为第一次被使用的情况下,可根据接收爬虫请求获得HTTP代理的信息的当前时间点、判定出的爬虫访问目标URL需要等待的时长及该网站的限制访问时间间隔,来更新该第一代理节点的节点数据并反馈给爬虫,以便爬虫在等待了该爬虫访问目标URL需要等待的时长后(也就是等待时间为0)来访问目标URL,且当爬虫再次使用该第一代理节点访问所属网站的URL时,根据更新后的第一代理节点的节点数据访问该URL。
并且,将环形链表中的下一个代理节点(也就是第二代理节点)设置为新的第一代理节点,当该爬虫再次请求获得HTTP代理时,直接将该新的第一代理节点(也就是第二代理节点)分配给爬虫使用。
上述本实施例的方法,通过合理调度已有的HTTP代理资源,可为爬虫提供较优化的代理,也就是可减少爬虫访问URL的等待时间,且可有效规避网站预先设置的限制访问时间间隔的限制,提高爬虫访问URL的效率,进而提高爬虫抓取网页数据的效率。
在本实施例中,在该第一代理节点并非第一次被使用的情况下,则可提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长,然后根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问目标URL需要等待的时长。
具体而言,可先设置第一代理节点被爬虫访问的时间点为timedo1,第一代理节点的延时访问时长为timehold1,当前时间点为timenow1,然后比较timedo1及timehold1的和与timenow1的大小。
若计算得出timedo1及timehold1的和小于timenow1,也就是timedo1+timehold1<timenow1,则获取到的需要等待的时长为0。
比如,timedo1为11点30分10秒,timehold1为40秒(比如其中的访问网站的限制访问时间间隔为20秒),timenow1为11点30分55秒,计算得出timedo1+timehold1<timenow1,则可获取到的需要等待的时长为0。
若计算得出timedo1及timehold1的和大于timenow1,也就是timedo1+timehold1>timenow1,则获取到的需要等待的时长为(timedo1+timehold1)-timenow1。
比如,timedo1为11点30分10秒,timehold1为40秒(比如其中的访问网站的限制访问时间间隔为20秒),timenow1为11点30分30秒,计算得出timedo1+timehold1<timenow1,则可获取到的需要等待的时长为(timedo1+timehold1)-timenow1=20秒。
进一步的,在此种情况下,更新该第一代理节点的数据,具体可为:
将该第一代理节点被爬虫访问的时间点timedo1更新为获取到的当前时间点11点30分30秒;
将该第一代理节点的延时访问时长timehold1更新为爬虫访问目标URL需要等待的时长(20秒)与该网站的限制访问时间间隔(20秒)之和的值,即40秒。
上述本实施例的方法,在该第一代理节点并非第一次被使用的情况下,根据各网站的限制访问时间间隔的不同,有效控制同一HTTP代理节点访问同一网站的URL的频率,解决现有技术中网站对IP进行限制的问题,提高爬虫访问网站的URL的效率,进而提高爬虫抓取网页数据的效率。
本发明还提供了一种与上述调度HTTP代理的方法相对应的装置,参看图3所示,为本发明调度HTTP代理的装置实施例一的结构示意图。
其中,每个限制访问时间间隔的网站都对应一个HTTP代理资源的环形链表,每个环形链表包括n个代理节点,其中n为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+1次访问该网站的URL之间需要等待的时间,k≥1。
所述装置包括:
第一判定单元31,用于接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站。
其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL。
第一获取单元32,用于在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点。
第二判定单元33,用于在第一代理节点为第一次被使用的情况下,判定爬虫访问目标URL需要等待的时长为0。
更新反馈单元34,用于根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问目标URL。
进一步的,在本实施例中,该装置还包括:
设置单元,用于按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
其中,预设方向可为顺时针,也可为逆时针,在本实施例采用是顺时针。
在本实施例中,在该第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长,然后根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问目标URL需要等待的时长。
进一步的,在本实施例中,该装置还包括:
提取单元,用于在第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长。
第二获取单元,用于根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问目标URL需要等待的时长。
进一步的,比如第一代理节点被爬虫访问的时间点为timedo1,第一代理节点的延时访问时长为timehold1,当前时间点为timenow1;
则所述第二获取单元,具体用于:
若计算得出timedo1+timehold1<timenow1,则获取到的需要等待的时长为0;
若计算得出timedo1+timehold1>timenow1,则获取到的需要等待的时长为(timedo1+timehold1)-timenow1。
进一步的,在本实施例中,更新反馈单元34可具体用于:
将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
上述本实施例的装置,在该第一代理节点并非第一次被使用的情况下,根据各网站的限制访问时间间隔的不同,有效控制同一HTTP代理节点访问同一网站的URL的频率,解决现有技术中网站对IP进行限制的问题,提高爬虫访问网站的URL的效率,进而提高爬虫抓取网页数据的效率。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种调度HTTP代理的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种调度HTTP代理的方法,其特征在于,为每个设置限制访问时间间隔的网站预先设置一个HTTP代理资源的环形链表,每个环形链表包括n个代理节点,其中n为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+1次访问该网站的URL之间需要等待的时间,k≥1;
所述方法包括:
接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL;
在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;
在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为0;
根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL;
将更新后的数据反馈给爬虫后,还包括:
按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
2.如权利要求1所述的方法,其特征在于,所述预设方向为顺时针或逆时针。
3.如权利要求1所述的方法,其特征在于,还包括:
在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长;
根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
4.如权利要求3所述的方法,其特征在于,设置所述第一代理节点被爬虫访问的时间点为timedo1,第一代理节点的延时访问时长为timehold1,当前时间点为timenow1;
所述根据第一代理节点被爬虫使用的时间点、第一代理节点的延时访问时长与当前时间点获取爬虫访问所述第一URL需要等待的时长,具体为:
若计算得出timedo1+timehold1<timenow1,则获取到的需要等待的时长为0;
若计算得出timedo1+timehold1>timenow1,则获取到的需要等待的时长为( timedo1+timehold1) - timenow1。
5.如权利要求1或4所述的方法,其特征在于,所述根据上述获取结果及判定结果更新该第一代理节点的数据,具体为:
将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
6.一种调度HTTP代理的装置,其特征在于,每个设置限制访问时间间隔的网站对应一个HTTP代理资源的环形链表,每个环形链表包括n个代理节点,其中n为HTTP代理的数量,每个代理节点的数据包括该代理节点的代理信息、该代理节点被爬虫使用的时间点和该代理节点的延时访问时长,其中,该代理节点被爬虫使用的时间点和该代理节点的延时访问时长在初始化时均为0,该代理节点的延时访问时长为该代理节点在第k次和第k+1次访问该网站的URL之间需要等待的时间,k≥1;
所述装置包括:
第一判定单元,用于接收爬虫请求获得HTTP代理的信息,并根据接收到的信息判定目标URL所属的网站,其中,所述请求获得HTTP代理的信息中包括爬虫将要访问的目标URL;
第一获取单元,用于在该爬虫为第一次请求获得HTTP代理的情况下,在所属的网站对应的环形链表中任意选取一个代理节点作为第一代理节点并获取当前时间点;
第二判定单元,用于在所述第一代理节点为第一次被使用的情况下,判定爬虫访问所述目标URL需要等待的时长为0;
更新反馈单元,用于根据上述获取结果及判定结果更新该第一代理节点的数据,并将更新后的数据反馈给爬虫,以便爬虫使用更新后的节点数据访问所述目标URL;
设置单元,用于按预设方向将所述第一代理节点在环形链表中的下一个代理节点设置为新的第一代理节点,以便当该爬虫再次请求获得HTTP代理时直接将该新的第一代理节点分配给爬虫使用。
7.如权利要求6所述的装置,其特征在于,所述预设方向为顺时针或逆时针。
8.如权利要求6所述的装置,其特征在于,还包括:
提取单元,用于在所述第一代理节点并非第一次被使用的情况下,则提取该第一代理节点更新后的数据中的该第一代理节点被爬虫使用的时间点和该第一代理节点的延时访问时长;
第二获取单元,用于根据该第一代理节点被爬虫使用的时间点、该第一代理节点的延时访问时长与当前时间点之间的计算结果获取爬虫访问所述目标URL需要等待的时长。
9.如权利要求8所述的装置,其特征在于,所述第一代理节点被爬虫访问的时间点为timedo1,第一代理节点的延时访问时长为timehold1,当前时间点为timenow1;
所述第二获取单元,具体用于:
若计算得出timedo1+timehold1<timenow1,则获取到的需要等待的时长为0;
若计算得出timedo1+timehold1>timenow1,则获取到的需要等待的时长为( timedo1+timehold1) - timenow1。
10.如权利要求6所述的装置,其特征在于,
所述更新反馈单元,具体用于:
将该第一代理节点被爬虫访问的时间点更新为获取到的当前时间点;
将该第一代理节点的延时访问时长更新为爬虫访问所述目标URL需要等待的时长与该网站的限制访问时间间隔之和的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410168725.1A CN103914568B (zh) | 2014-04-24 | 2014-04-24 | 调度http代理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410168725.1A CN103914568B (zh) | 2014-04-24 | 2014-04-24 | 调度http代理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914568A CN103914568A (zh) | 2014-07-09 |
CN103914568B true CN103914568B (zh) | 2017-05-03 |
Family
ID=51040248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410168725.1A Active CN103914568B (zh) | 2014-04-24 | 2014-04-24 | 调度http代理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914568B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125121A (zh) * | 2014-08-15 | 2014-10-29 | 携程计算机技术(上海)有限公司 | 网络劫持行为的检测系统及方法 |
CN104331508B (zh) * | 2014-11-21 | 2017-12-29 | 浪潮(北京)电子信息产业有限公司 | 一种实现关系型数据库负载均衡的管理系统及方法 |
CN104967698B (zh) * | 2015-02-13 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种爬取网络数据的方法和装置 |
CN106534244B (zh) * | 2015-09-14 | 2020-01-17 | 中国移动通信集团公司 | 一种代理资源的调度方法及装置 |
CN105740384A (zh) * | 2016-01-27 | 2016-07-06 | 浪潮软件集团有限公司 | 一种爬虫代理自动切换方法及装置 |
WO2019079966A1 (zh) * | 2017-10-24 | 2019-05-02 | 麦格创科技(深圳)有限公司 | 分布式爬虫任务分配方法及系统 |
CN108093416B (zh) * | 2017-11-30 | 2021-09-21 | 厦门市美亚柏科信息股份有限公司 | 一种移动app推送数据的采集方法及终端 |
CN109274782B (zh) * | 2018-08-24 | 2020-04-10 | 北京创鑫旅程网络技术有限公司 | 一种采集网站数据的方法及装置 |
CN111355693B (zh) * | 2018-12-24 | 2023-10-31 | 北京奇虎科技有限公司 | 代理服务的实现方法、装置、电子设备和存储介质 |
CN111641664B (zh) * | 2019-03-01 | 2023-12-05 | 北京京东尚科信息技术有限公司 | 一种爬虫设备业务请求方法、装置、系统和存储介质 |
CN113132449A (zh) * | 2020-01-16 | 2021-07-16 | 京东方科技集团股份有限公司 | 一种调度方法、装置及设备 |
CN112800309A (zh) * | 2021-01-30 | 2021-05-14 | 上海应用技术大学 | 基于http代理的爬虫系统及其实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741883A (zh) * | 2008-11-27 | 2010-06-16 | Tcl集团股份有限公司 | 一种提高ce设备网络下载速度的方法及系统 |
CN102457588A (zh) * | 2011-12-20 | 2012-05-16 | 北京瑞汛世纪科技有限公司 | 一种实现反向域名解析的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953868B2 (en) * | 2007-01-31 | 2011-05-31 | International Business Machines Corporation | Method and system for preventing web crawling detection |
-
2014
- 2014-04-24 CN CN201410168725.1A patent/CN103914568B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741883A (zh) * | 2008-11-27 | 2010-06-16 | Tcl集团股份有限公司 | 一种提高ce设备网络下载速度的方法及系统 |
CN102457588A (zh) * | 2011-12-20 | 2012-05-16 | 北京瑞汛世纪科技有限公司 | 一种实现反向域名解析的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于哈希链表和时间链表的HTTP代理缓存机制的实现;陈兵 等;《南京航空航天大学学报》;20020228;第34卷(第1期);50-54 * |
Also Published As
Publication number | Publication date |
---|---|
CN103914568A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914568B (zh) | 调度http代理的方法和装置 | |
McCreadie et al. | On building a reusable twitter corpus | |
CN103297528B (zh) | 一种获取票务信息的方法和装置 | |
CN107071009A (zh) | 一种负载均衡的分布式大数据爬虫系统 | |
CN106534244B (zh) | 一种代理资源的调度方法及装置 | |
EP2488938B1 (en) | Data update for website users based on preset conditions | |
CN105550338A (zh) | 一种基于HTML5应用缓存的移动Web缓存优化方法 | |
CN105450780A (zh) | 一种cdn系统及其回源方法 | |
RU2007137005A (ru) | Система и способ для формирования и передачи запрошенных данных между сетевыми прикладными программами | |
CN104184832A (zh) | 网络应用中的数据提交方法及装置 | |
CN106095533A (zh) | 服务器扩容方法及装置 | |
CN103338272A (zh) | 一种内容分发网络及其缓存实现方法 | |
CN109672757A (zh) | 文件访问方法及文件访问处理装置 | |
US10320935B2 (en) | Cache data validation | |
CN108416609A (zh) | 广告灰度投放方法及装置 | |
CN105991769A (zh) | 数据迁移方法及装置、边缘节点服务器 | |
CN110020046A (zh) | 一种数据抓取方法及装置 | |
CN110149419A (zh) | 基于ip的高效爬虫方法 | |
CN104320488A (zh) | 代理服务器系统及代理服务方法 | |
CN117321589A (zh) | 通过使用代理进行web抓取及其应用 | |
CN106331172A (zh) | 一种应用于内容分发网络的资源检测方法及装置 | |
CN105991634A (zh) | 访问控制的方法和装置 | |
CN102710535A (zh) | 一种数据获取方法和设备 | |
CN107958052A (zh) | 一种大规模网络爬虫程序的访问方法及装置 | |
JP2012503239A5 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |