CN106656840B - 一种应用于网络爬虫的动态流量控制方法 - Google Patents
一种应用于网络爬虫的动态流量控制方法 Download PDFInfo
- Publication number
- CN106656840B CN106656840B CN201611057820.XA CN201611057820A CN106656840B CN 106656840 B CN106656840 B CN 106656840B CN 201611057820 A CN201611057820 A CN 201611057820A CN 106656840 B CN106656840 B CN 106656840B
- Authority
- CN
- China
- Prior art keywords
- crawlers
- value
- round
- trip delay
- rtt
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及网络爬虫的动态流量控制机制,旨在提供一种应用于网络爬虫的动态流量控制方法。该种应用于网络爬虫的动态流量控制方法包括步骤:爬虫程序接收到请求包的响应时,计算本次传输的往返时延R,然后每隔TIME_INTERVAL时间统计该时间间隔内RTT估计器的最小值和最大值再将该往返时延R与RTT统计参数对比,并根据对比结果调整爬虫程序当前的最大并发连接数MaxRequestCount,用于控制爬虫程序的每秒发包数。本发明实现了基于应用层http包的、部署在客户端上的爬虫程序发包速度调节程序,可以减少对服务器造成的压力,有效避免服务器因为爬虫软件快速发包造成的拒绝访问等崩溃错误。
Description
技术领域
本发明是关于网络爬虫的动态流量控制机制领域,特别涉及一种应用于网络爬虫的动态流量控制方法。
背景技术
随着互联网技术的快速发展,互联网已经成为大量信息的载体,为了高效提取和利用互联网上的信息,网络爬虫技术应运而生。
网络爬虫是一种以固定规则自动抓取网页信息的程序或脚本。网络爬虫通常以一个或多个URL开始,然后获取初始网页上的URL。在爬行网页的过程中,爬虫会不断地获取当前页面的URL并将这些URL加入队列。爬虫定期检查该队列,如果该队列不为空,则爬行队列中的URL。爬虫会在满足一定的停止条件后自动停止。
由于网络爬虫会不断获取当前爬行网页中的URL并加入列队继续爬行,这会导致爬虫在短时间内向站点发送大量请求,从而导致网络和服务器负载迅速增高,使得请求响应的往返时间显著变大,严重时可能会导致网络或服务器崩溃。
网络爬虫发送的是http请求包,其工作在网络层次结构中的应用层,同时用户只能在客户端对爬虫的发包行为进行约束,从而减少服务端的压力。现有技术中,还没有实现在客户端的用于缓解服务端压力的应用层流量控制方法。
一方面,流量控制以实现在服务端为主,专利2011103622224便是实现在服务端的应用层流量控制,通过黑名单的方法将爬虫请求包进行过滤,然而该方法局限于服务端,爬虫的实现者基本上没有操作服务器的权限,因而该方法难以被爬虫实现者所采用,并且过滤了爬虫请求包也会对爬虫抓取数据的完整性产生很大的影响。
另一方面,流量控制一般实现在更底层,比如传输层。著名的滑动窗口机制就是实现在传输层上的流量控制方法,通过限制发送窗口的大小来平衡客户端传输的速度。但是该类方法只是保证了端到端传输的稳定,无法保证服务器工作的稳定性,难以避免服务器拒绝服务的现象产生。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种定位精准、定位速度快、夹持可靠的夹持装置。为解决上述技术问题,本发明的解决方案是:
提供一种应用于网络爬虫的动态流量控制方法,用于对爬虫程序进行流量控制,所述应用于网络爬虫的动态流量控制方法具体包括下述步骤:
(1)爬虫程序接收到请求包的响应时,计算本次传输的往返时延R;
再用该往返时延R更新RTT估计器RTT估计器的计算式如下:
其中,α是平滑因子,R是实际测量的往返时延;
然后每隔TIME_INTERVAL时间(此时间预先设定,且不可过长导致流控的响应速度减慢,同时要保证该时间内可以收到充分数量的包,收到10个包左右的时间比较合适)统计该时间间隔内RTT估计器的最小值和最大值具体更新方式为:
区间开始时重置
区间内更新
种反映当前爬虫程序对网络或服务器的负载大小,这两个值用于作为动态流量控制的判断参数;
(2)再将该往返时延R与RTT统计参数对比,并根据对比结果调整爬虫程序当前的最大并发连接数MaxRequestCount,用于控制爬虫程序的每秒发包数,具体为:
当往返时延R小于或者往返时延R小于阈值RTT_MIN(通常设置为一个较小的值,当R小于该值时强制增加最大并发连接数),即时:
将爬虫程序的最大并发连接数MaxRequestCount递增一个常量值CONNECT_COUNT_INCREASE_VALUE(通常设定为1,也可根据需要适当增加),即MaxRequestCount+=CONNECT_COUNT_INCREASE_VALUE;
当往返时延R大了或者往返时延R大于阈值RTT_MAX(通常设置为一个较大的值,当R大于该值时强制减少最大并发连接数),即时:
将爬虫程序的最大并发连接数MaxRequestCount递减一个常量值CONNECT_COUNT_DECREASE_VALUE(通常设定为1,也可根据需要适当增加),即MaxRequestCount-=CONNECT_COUNT_DECREASE-VALUE;
其中,RTT_MIN、RTT_MAX为常数阈值,CONNECT_COUNT_INCREASE_VALUE为爬虫程序最大并发连接数的递增常量,CONNECT_COUNT_DECREASE_VALUE为爬虫程序最大并发连接数的递减常量。
本发明的工作原理:通过对爬虫程序请求响应的往返时延进行实时监控,当往返时延比较小时,说明当前网络和服务器负载较小,网络和服务器的吞吐量可以进一步提高,于是增大爬虫程序的最大并发连接数,以提高网络和服务器的利用率。当往返时延比较大时,说明当前网络和服务器的负载较大,网络和服务器可能已经达到饱和,于是减小爬虫程序的最大并发连接数,以降低网络和服务器的负载压力。
与现有技术相比,本发明的有益效果是:
本发明实现了基于应用层http包的、部署在客户端上的爬虫程序发包速度调节程序,可以减少对服务器造成的压力,有效避免服务器因为爬虫软件快速发包造成的拒绝访问等崩溃错误。
附图说明
图1为本发明进行动态流量控制的流程图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
下面的实施例可以使本专业的专业技术人员更全面地理解本发明,但不以任何方式限制本发明。
如图1所示的一种应用于网络爬虫的动态流量控制方法,其步骤具体为:
1.1)爬虫程序接收请求包的响应,并计算本次传输的往返时延R,然后通过R来更新RTT估计器并根据更新和
1.2)计算当前时间距上次重置的时间差是否超过TIME_INTERVAL:如果是,则执行1.3);如果否,则执行1.4);
1.3)使用RTT估计值的值重置
1.4)判断往返时延R是否小于或者往返时延R是否小于阈值RTT_MIN:如果是,则执行1.5);如果否,则执行1.6);
1.5)将爬虫程序的最大并发连接数MaxRequestCount递增一个常量值CONNECT_COUNT_INCREASE_VALUE;
1.6)判断往返时延R是否大于或者往返时延R是否大于阈值RTT_MAX:如果是,则执行1.7);如果否,则执行1.8);
1.7)将爬虫程序的最大并发连接数MaxRequestCount递减一个常量值CONNECT_COUNT_DECREASE_VALUE;
1.8)动态流量控制程序执行完毕。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (1)
1.一种应用于网络爬虫的动态流量控制方法,用于对爬虫程序进行流量控制,其特征在于,所述应用于网络爬虫的动态流量控制方法具体包括下述步骤:
(1)爬虫程序接收到请求包的响应时,计算本次传输的往返时延R;
再用该往返时延R更新RTT估计器RTT估计器的计算式如下:
其中,α是平滑因子,R是实际测量的往返时延;
然后每隔TIME_INTERVAL时间统计该时间间隔内RTT估计器的最小值和最大值具体更新方式为:
区间开始时重置
区间内更新
和反映当前爬虫程序对网络或服务器的负载大小,这两个值用于作为动态流量控制的判断参数;
(2)再将该往返时延R与RTT统计参数对比,并根据对比结果调整爬虫程序当前的最大并发连接数MaxRequestCount,用于控制爬虫程序的每秒发包数,具体为:
当往返时延R小于或者往返时延R小于阈值RTT_MIN,即时:
将爬虫程序的最大并发连接数MaxRequestCount递增一个常量值CONNECT_COUNT_INCREASE_VALUE,即MaxRequestCount+=CONNECT_COUNT_INCREASE_VALUE;
当往返时延R大于或者往返时延R大于阈值RTT_MAX,即时:
将爬虫程序的最大并发连接数MaxRequestCount递减一个常量值CONNECT_COUNT_DECREASE_VALUE,即MaxRequestCount-=CONNECT_COUNT_DECREASE_VALUE;
其中,RTT_MIN、RTT_MAX为常数阈值,CONNECT_COUNT_INCREASE_VALUE为爬虫程序最大并发连接数的递增常量,CONNECT_COUNT_DECREASE_VALUE为爬虫程序最大并发连接数的递减常量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611057820.XA CN106656840B (zh) | 2016-11-25 | 2016-11-25 | 一种应用于网络爬虫的动态流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611057820.XA CN106656840B (zh) | 2016-11-25 | 2016-11-25 | 一种应用于网络爬虫的动态流量控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106656840A CN106656840A (zh) | 2017-05-10 |
CN106656840B true CN106656840B (zh) | 2019-11-08 |
Family
ID=58811596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611057820.XA Active CN106656840B (zh) | 2016-11-25 | 2016-11-25 | 一种应用于网络爬虫的动态流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106656840B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107589991A (zh) * | 2017-10-31 | 2018-01-16 | 麦格创科技(深圳)有限公司 | 分布式系统的网页分配方法及系统 |
CN110019671B (zh) * | 2017-11-07 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 一种处理实时消息的方法和系统 |
CN108959399B (zh) * | 2018-06-04 | 2022-07-15 | 平安科技(深圳)有限公司 | 分布式数据删除流控方法、装置、电子设备及存储介质 |
CN114006871A (zh) * | 2021-10-25 | 2022-02-01 | 北京有竹居网络技术有限公司 | 流量控制方法、装置、容器和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102811166A (zh) * | 2011-05-31 | 2012-12-05 | 三星Sds株式会社 | 控制流以并行接收数据的方法和设备 |
CN103107948A (zh) * | 2011-11-15 | 2013-05-15 | 阿里巴巴集团控股有限公司 | 一种流量控制方法和装置 |
CN103164663A (zh) * | 2011-12-12 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 一种基于滑动窗口的服务器过载保护方法及装置 |
CN105610728A (zh) * | 2015-12-28 | 2016-05-25 | 湖南蚁坊软件有限公司 | 一种基于时间窗口的网络爬虫流量控制自动降级方法 |
-
2016
- 2016-11-25 CN CN201611057820.XA patent/CN106656840B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102811166A (zh) * | 2011-05-31 | 2012-12-05 | 三星Sds株式会社 | 控制流以并行接收数据的方法和设备 |
CN103107948A (zh) * | 2011-11-15 | 2013-05-15 | 阿里巴巴集团控股有限公司 | 一种流量控制方法和装置 |
CN103164663A (zh) * | 2011-12-12 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 一种基于滑动窗口的服务器过载保护方法及装置 |
CN105610728A (zh) * | 2015-12-28 | 2016-05-25 | 湖南蚁坊软件有限公司 | 一种基于时间窗口的网络爬虫流量控制自动降级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106656840A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106656840B (zh) | 一种应用于网络爬虫的动态流量控制方法 | |
Ghobadi et al. | Trickle: Rate limiting {YouTube} video streaming | |
CN106062726B (zh) | 用于数据中心交换机的流感知缓冲区管理 | |
Alizadeh et al. | Analysis of DCTCP: stability, convergence, and fairness | |
Henderson et al. | On improving the fairness of TCP congestion avoidance | |
Ha et al. | Taming the elephants: New TCP slow start | |
JP4174052B2 (ja) | ネットワーク・デバイスにおけるフロー制御 | |
CN103999409B (zh) | 用于带宽变化移动数据网络的链路缓冲器大小和队列长度估算的方法 | |
US8004985B2 (en) | Communication terminal which perform low-delay communication by using a broadband line | |
US20150271232A1 (en) | Transport accelerator implementing request manager and connection manager functionality | |
KR102378290B1 (ko) | 패킷 손실 허용 송신 제어 프로토콜 혼잡 제어 | |
EP3516833A1 (en) | Methods, systems, and computer readable media for discarding messages during a congestion event | |
CN107872401B (zh) | 一种网络关键业务保障方法及装置 | |
US9270556B2 (en) | Flow control in packet processing systems | |
EP3334117B1 (en) | Method, apparatus and system for quantizing defence result | |
JP2006511137A5 (zh) | ||
US20120324573A1 (en) | Method for determining whether or not specific network session is under denial-of-service attack and method for the same | |
KR20160127511A (ko) | 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법 | |
US10868839B2 (en) | Method and system for upload optimization | |
CN105471757A (zh) | 一种tcp拥塞控制方法及装置 | |
US20080291833A1 (en) | Method for buffer control for network device | |
US10952102B2 (en) | Method and apparatus for controlling data transmission speed in wireless communication system | |
M. Abdelmoniem et al. | Reducing latency in multi-tenant data centers via cautious congestion watch | |
Altman et al. | Analysis of the TCP/IP flow control in high-speed wide-area networks | |
Lu et al. | FAMD: A Flow-Aware Marking and Delay-based TCP algorithm for datacenter networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310051 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Annan information technology Limited by Share Ltd Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer Applicant before: Dbappsecurity Co.,ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |