CN106209685A - 一种面向海量数据源的网络爬虫动态带宽分配方法及系统 - Google Patents
一种面向海量数据源的网络爬虫动态带宽分配方法及系统 Download PDFInfo
- Publication number
- CN106209685A CN106209685A CN201610536834.3A CN201610536834A CN106209685A CN 106209685 A CN106209685 A CN 106209685A CN 201610536834 A CN201610536834 A CN 201610536834A CN 106209685 A CN106209685 A CN 106209685A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- crawlers
- distribution
- website
- data source
- 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.)
- Granted
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/70—Admission control; Resource allocation
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/765—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the end-points
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种面向海量数据源的网络爬虫动态带宽分配方法及系统,所述方法包括以下步骤:S1、通过若干爬虫程序带宽占比进行第一次分配;S2、每隔一段时间通过各爬虫程序对带宽进行重新预测和分配;S3、若某个爬虫程序停止后释放其所占用资源,并通过爬虫程序重新进行带宽分配;S4、当所有爬虫程序均停止,则分配结束。本发明实现了在request级别上对带宽的细粒度动态分配,保障信息的及时获取,降低爬取信息的总时间;实现了最短总爬取时间和最短最长爬取时间两种分配算法,支持多种数据爬取情况。
Description
技术领域
本发明涉及网络信息处理技术领域,更具体的说,是涉及一种面向海量数据源的网络爬虫动态带宽分配方法及系统。
背景技术
在当前从网络上海量数据源中获取信息的系统尤其是对及时性要求较高的系统中,下载带宽是制约爬取效率的主要瓶颈之一。
以新闻数据爬取为例,由于海量的数据源,如各个新闻门户网站、政府网站、微博等需要同时采集,顺序化的数据采集的方式,网络带宽有限等原因,重要的数据无法及时地呈现到用户眼前,无法做到实时分析。
在同时运行多个针对不同站点的爬虫以同时爬取大量信息时,由于不同数据源的优先程度、更新模式、网络质量等等的不同,可以通过对各爬虫间需要的带宽进行预测,再对网络带宽进行动态分配,适应实际中不同的网络和数据特征,避免一些爬虫可能存在的“死等”现象,更好地利用带宽资源,提高网络带宽资源利用效率。
发明内容
有鉴于此,有必要针对上述问题,提供一种面向海量数据源的网络爬虫动态带宽分配方法及系统,根据对多个数据源预测得到的带宽占比,按照不同的优化目标,对未来一段时间针对各个数据源的爬虫所占带宽进行动态分配。
为了实现上述目的,本发明的技术方案如下:
一种面向海量数据源的网络爬虫动态带宽分配方法,包括以下步骤:
S1、通过爬虫系统对各个爬虫程序的带宽占比进行首次分配;
S2、每隔一段时间对各爬虫程序的带宽进行重新预测和分配;
S3、若某个爬虫程序停止后释放其所占用资源,并通过爬虫程序对剩余的各个爬虫程序重新进行带宽分配;
S4、当所有爬虫程序均停止,则分配结束。
作为优选的,在所述步骤S1和步骤S2中,通过带宽分配算法对带宽进行分配,具体为通过获取对当前所有正在运行的爬虫程序所爬取网站信息数量的预测值之后,根据各自在总信息数量中的占比,根据不同的目标函数,按照不同的分配算法得到对各个爬虫应当分配的带宽占比,并实际加以限制,实现对各个爬虫的所在网站的实际下载带宽进行限制。
作为优选的,所述宽带限制条件为:
∑Vi≤U
式中,U为总宽带量,Di(i=1,2,…,n)为爬虫程序需要爬取的n个网站的信息量,分别占用的宽带为Vi(i=1,2,…,n),每个网站的爬取时间为Ti,我们可能对某些特定网站设置有一些爬取时间上的限制,再此处设为Ti*。
作为优选的,所示宽带限制还设有最短最长爬取时间min(max(Ti))及最短总爬取时间min∑Ti。
作为优选的,所述最短最长爬取时间处理方法包括:将爬虫程序所爬取网站按Ti进行升序排列,从Ti≠0的网站开始,比较Ti*与剩余未分配网站的平均时间,若Ti*较大则将剩余所有网站按照权重分配,否则按照Vi=Di/Ti*对当前网站进行分配。
作为优选的,所述权重分配包括按照各网站信息量的比例,当给某一网站分配带宽时可分配带宽等于0或者不够则分配失败,读入网站名及其时间设置条件ti *,返回每个网站分配到的限制带宽Vi。
作为优选的,所述最短总爬取时间处理方法包括:
A、通过Largrange乘数法,得到分配一:Vi=Di/Ti*和分配二:
B、对带宽按照分配一进行预分配,再对Ti*降序排列,对于分配到的Vi不能满足时间限制的网站按照分配二计算,否则按照方案一计算,再更新剩余带宽;
C、对剩余网站递归按照步骤B处理,直至所有网站的带宽确定,若给某网站分配带宽时可分配带宽为0或不够则分配失败。
作为优选的,所述带宽分配是通过对爬虫程序向网页服务器发送的request作为基本单位进行调整、分配和监控的;爬虫通过发送request来获取网页信息,一个request对应一个下载得到的response,通过限制每个爬虫程序同时发送request的数量,动态地在request的粒度上对带宽进行控制。
作为优选的,所述步骤S4中,分配结束后,将本轮爬取到的数据的按发布时间分类统计以进一步改进预测模型。
一种根据上述方法进行带宽分配的系统,其特征在于,包括数据库、爬虫系统、带宽预测模块和带宽分配模块;
所述爬虫系统用于编写和控制爬虫程序,爬取各网站的信息数量值;
所述宽带预测模块用于根据爬虫程序获取的信息计算各网站在总的发布信息数量中的占比,并对各网站的带宽进行预测;
所述带宽分配模块用于根据带宽预测的值和带宽分配算法对各网站的带宽进行分配和限制;
所述数据库用于存储爬虫程序所爬取的信息。
与现有技术相比,本发明的有益效果在于:
1、实现了在request级别上对带宽的细粒度动态分配,保障信息的及时获取,降低爬取信息的总时间;
2、实现了最短总爬取时间和最短最长爬取时间最优两种分配算法,支持多种数据爬取情况。
附图说明
图1为本发明实施例的方法流程图;
图2为本发明实施例系统结构框图。
具体实施方式
下面结合附图和实施例对本发明所述的一种面向海量数据源的网络爬虫动态带宽分配方法及系统作进一步说明。
以下是本发明所述的一种面向海量数据源的网络爬虫动态带宽分配方法及系统的最佳实例,并不因此限定本发明的保护范围。
图1示出了一种面向海量数据源的网络爬虫动态带宽分配方法,包括以下步骤:
S1、通过爬虫系统对各个爬虫程序的带宽占比进行首次分配;
S2、每隔一段时间对各爬虫程序的带宽进行重新预测和分配;
S3、若某个爬虫程序停止后释放其所占用资源,并通过爬虫系统对剩余的各个爬虫程序重新进行带宽分配;
S4、当所有爬虫程序均停止,则分配结束,将本轮爬取到的数据的按发布时间分类统计以进一步改进预测模型。
在本实施例中,步骤S1和步骤S2通过带宽分配算法对带宽进行分配,具体实施带宽分配的思路是在获取对当前所有正在运行的爬虫程序所爬取网站的信息数量的预测值之后,根据各自在总的发布信息数量中的占比,根据不同的目标函数,按照不同的分配算法得到对各个爬虫应当分配的带宽占比,并实际加以限制,实现对各个爬虫的实际下载带宽进行限制,达到时间优化目标。
所述宽带限制条件为:
∑Vi≤U
对于其中部分网站具有时间限制:
式中,U为总宽带量,Di(i=1,2,…,n)为爬虫程序需要爬取的n个网站的信息量,分别占用的宽带为Vi(i=1,2,…,n),每个网站的爬取时间为Ti,对某些特定网站设置有一些爬取时间上的限制,再此处设为Ti*。
根据不同的情况,所示宽带限制还设有最短最长爬取时间min(max(Ti))及最短总爬取时间min∑Ti。最短总爬取时间用于提高系统总的带宽利用率;最短最长爬取时间是为了防止部分爬虫可能的“死等”现象,保证信息获取的公平性和及时性。
为实现最短最长爬取时间,采用以下方法进行处理:将爬虫程序所爬取网站按Ti进行升序排列,从Ti≠0的网站开始,比较Ti*与剩余未分配网站的平均时间,若Ti*较大则将剩余所有网站按照权重分配,否则按照Vi=Di/Ti*对当前网站进行分配。
进一步的,所述权重分配包括按照各网站信息量的比例,当给某一网站分配带宽时可分配带宽等于0或者不够则分配失败,读入网站名及其时间设置条件Ti*,返回每个网站分配到的限制带宽Vi。
作为优选的,所述最短总爬取时间处理方法包括:
A、通过Largrange乘数法,得到分配一:Vi=Di/Ti*和分配二:
B、对带宽按照分配一进行预分配,再对Ti*降序排列,对于分配到的Vi不能满足时间限制的网站按照分配二计算,否则按照方案一计算,再更新剩余带宽;
C、对剩余网站递归按照步骤B处理,直至所有网站的带宽确定,若给某网站分配带宽时可分配带宽为0或不够则分配失败。
如果某一网站的爬取任务完成,可能由于所有信息都已经下载结束或者出现了故障,释放掉它的一切资源,重新为其他的爬虫程序设置最大同时发送request数量,以实现动态的重新分配;空余出来的带宽将根据分配算法分配到其他爬虫程序。
作为优选的,所述带宽分配是通过对爬虫程序向网页服务器发送的request作为基本单位进行调整、分配和监控的;爬虫通过发送request来获取网页信息,一个request对应一个下载得到的response,通过限制每个爬虫程序同时发送request的数量,动态地在request的粒度上对带宽进行控制。
一种根据上述方法进行带宽分配的系统,其特征在于,包括数据库、爬虫系统、带宽预测模块和带宽分配模块;
所述爬虫系统用于编写和控制爬虫程序,爬取各网站的信息数量值;
所述宽带预测模块用于根据爬虫程序获取的信息计算各网站在总的发布信息数量中的占比,每隔一定时间对各爬虫程序的带宽进行预测;
所述带宽分配模块用于根据带宽预测的值和带宽分配算法对各网站的带宽进行分配和限制;
所述数据库用于存储爬虫程序所爬取的信息以及分配信息。
综上所述,本发明实现了在request级别上对带宽的细粒度动态分配,保障信息的及时获取,降低爬取信息的总时间;实现了最短总爬取时间和最短最长爬取时间最优两种分配算法,支持多种数据爬取情况,对各个爬虫程序的带宽使用情况进行限制,减低信息爬取的时间,保障信息的及时获取,同时防止一部分数据源的爬虫程序陷入无限“死等”的状态。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,包括以下步骤:
S1、通过爬虫系统对各个爬虫程序的带宽占比进行首次分配;
S2、每隔一段时间对各爬虫程序所占用的带宽进行重新预测和分配;
S3、若某个爬虫程序停止后释放其所占用资源,并对剩余的各个爬虫程序重新进行带宽分配;
S4、当所有爬虫程序均停止,则分配结束。
2.根据权利要求1所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述步骤S1和步骤S2中通过带宽分配算法对带宽进行分配,具体为通过获取对当前所有正在运行的爬虫程序所爬取网站信息数量的预测值之后,根据各自在总信息数量中的占比,根据不同的目标函数,按照不同的分配算法得到对各个爬虫应当分配的带宽占比,并实际加以限制,实现对各个爬虫的实际下载带宽进行限制。
3.根据权利要求2所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述带宽限制条件为:
∑Vi≤U
式中,U为带宽总量,Di(i=1,2,…,n)为爬虫程序需要爬取的第i个网站的所需要下载的信息量,占用的带宽为Vi(i=1,2,…,n),每个网站所需的爬取时间为Ti,对特定网站设置有一些爬取时间上的限制,再此处设为Ti*。
4.根据权利要求3所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所示宽带限制还设有最短最长爬取时间min(max(Ti))及最短总爬取时间min∑Ti。
5.根据权利要求4所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述最短最长爬取时间处理方法包括:将爬虫程序所爬取网站按Ti进行升序排列,从Ti≠0的网站开始,比较Ti*与剩余未分配网站的平均时间,若Ti*较大则将剩余所有网站按照权重分配,否则按照Vi=Di/Ti*对当前网站进行分配。
6.根据权利要求5所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述权重分配包括按照各网站信息量的比例,当给某一网站分配带宽时可分配带宽等于0或者不够则分配失败,读入网站名及其时间设置条件Ti*,返回每个网站分配到的限制带宽Vi。
7.根据权利要求4所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述最短总爬取时间处理方法包括:
A、通过Largrange乘数法,得到分配一:Vi=Di/Ti*和分配二:
B、对带宽按照分配一进行预分配,再对Ti*降序排列,对于分配到的Vi不能满足时间限制Ti*的网站按照分配二计算,否则按照方案一计算,再更新剩余带宽U;
C、对剩余网站递归按照步骤B处理,直至所有网站的带宽确定,若给某网站分配带宽时可分配带宽为0或不够则分配失败。
8.根据权利要求1所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述带宽分配是通过对爬虫程序向网页服务器发送的request作为基本单位进行调整、分配和监控的;爬虫通过发送request来获取网页信息,一个request对应一个下载得到的response,通过限制每个爬虫程序同时发送request的数量,动态地在request的粒度上对带宽进行控制。
9.根据权利要求1所述的面向海量数据源的网络爬虫动态带宽分配方法,其特征在于,所述步骤S4中,分配结束后,将本轮爬取到的数据的按发布时间分类统计以进一步改进预测模型。
10.一种根据权利要求1至8任一所述的方法进行带宽分配的系统,其特征在于,包括数据库、爬虫系统、带宽预测模块和带宽分配模块;
所述爬虫系统用于编写和控制爬虫程序,爬取各网站的信息数量值;
所述宽带预测模块用于根据爬虫程序获取的信息计算各网站在总的发布信息数量中的占比,并对各网站的带宽进行预测;
所述带宽分配模块用于根据带宽预测的值和带宽分配算法对各网站的带宽进行分配和限制;
所述数据库用于存储爬虫程序所爬取的信息以及分配信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610536834.3A CN106209685B (zh) | 2016-07-08 | 2016-07-08 | 一种面向海量数据源的网络爬虫动态带宽分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610536834.3A CN106209685B (zh) | 2016-07-08 | 2016-07-08 | 一种面向海量数据源的网络爬虫动态带宽分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106209685A true CN106209685A (zh) | 2016-12-07 |
CN106209685B CN106209685B (zh) | 2019-11-19 |
Family
ID=57473876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610536834.3A Active CN106209685B (zh) | 2016-07-08 | 2016-07-08 | 一种面向海量数据源的网络爬虫动态带宽分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209685B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886459A (zh) * | 2017-01-24 | 2017-06-23 | 浙江工商大学 | 一种基于实测带宽的多智能体互联网数据采集任务分配方法 |
CN107203623A (zh) * | 2017-05-26 | 2017-09-26 | 山东省科学院情报研究所 | 网络爬虫系统的负载均衡调节方法 |
CN107590188A (zh) * | 2017-08-08 | 2018-01-16 | 杭州灵皓科技有限公司 | 一种自动化垂直细分领域的爬虫爬取方法及其管理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044962A1 (en) * | 2001-05-08 | 2004-03-04 | Green Jacob William | Relevant search rankings using high refresh-rate distributed crawling |
CN101064550A (zh) * | 2006-04-29 | 2007-10-31 | 袁�嘉 | 一种基于主导因子法的网络共享带宽动态分配方法 |
CN103024825A (zh) * | 2011-09-26 | 2013-04-03 | 中国移动通信集团公司 | 终端多应用间网络资源分配方法及其设备 |
CN103905343A (zh) * | 2013-05-17 | 2014-07-02 | 杭州东创科技股份有限公司 | 一种宽带资源动态分配的方法 |
-
2016
- 2016-07-08 CN CN201610536834.3A patent/CN106209685B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044962A1 (en) * | 2001-05-08 | 2004-03-04 | Green Jacob William | Relevant search rankings using high refresh-rate distributed crawling |
CN101064550A (zh) * | 2006-04-29 | 2007-10-31 | 袁�嘉 | 一种基于主导因子法的网络共享带宽动态分配方法 |
CN103024825A (zh) * | 2011-09-26 | 2013-04-03 | 中国移动通信集团公司 | 终端多应用间网络资源分配方法及其设备 |
CN103905343A (zh) * | 2013-05-17 | 2014-07-02 | 杭州东创科技股份有限公司 | 一种宽带资源动态分配的方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886459A (zh) * | 2017-01-24 | 2017-06-23 | 浙江工商大学 | 一种基于实测带宽的多智能体互联网数据采集任务分配方法 |
CN106886459B (zh) * | 2017-01-24 | 2019-07-23 | 浙江工商大学 | 一种基于实测带宽的多智能体互联网数据采集任务分配方法 |
CN107203623A (zh) * | 2017-05-26 | 2017-09-26 | 山东省科学院情报研究所 | 网络爬虫系统的负载均衡调节方法 |
CN107203623B (zh) * | 2017-05-26 | 2020-09-22 | 山东省科学院情报研究所 | 网络爬虫系统的负载均衡调节方法 |
CN107590188A (zh) * | 2017-08-08 | 2018-01-16 | 杭州灵皓科技有限公司 | 一种自动化垂直细分领域的爬虫爬取方法及其管理系统 |
CN107590188B (zh) * | 2017-08-08 | 2020-02-14 | 杭州灵皓科技有限公司 | 一种自动化垂直细分领域的爬虫爬取方法及其管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106209685B (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857546B (zh) | 基于Lyapunov优化的多服务器移动边缘计算卸载方法及装置 | |
US9178763B2 (en) | Weight-based collocation management | |
EP2988215B1 (en) | Task assigning method, task assigning apparatus, and network-on-chip | |
CN103379040B (zh) | 一种高并发系统中控制并发数的装置和方法 | |
US20160373494A1 (en) | Data Processing Method in Stream Computing System, Control Node, and Stream Computing System | |
CN104639466B (zh) | 一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法 | |
CN104348798B (zh) | 一种分配网络的方法、装置、调度服务器和系统 | |
CN105897484A (zh) | 一种流量管理装置、服务器和方法 | |
CN105242956A (zh) | 虚拟功能服务链部署系统及其部署方法 | |
CN110866167B (zh) | 任务分配方法、装置、服务器和存储介质 | |
CN106209685A (zh) | 一种面向海量数据源的网络爬虫动态带宽分配方法及系统 | |
US10963920B2 (en) | Web page viewership prediction | |
US9817698B2 (en) | Scheduling execution requests to allow partial results | |
CN109981723B (zh) | 基于深度强化学习的文件缓存处理系统及方法、通信系统 | |
US20180322401A1 (en) | Object count prediction using distributed processing | |
CN103179148A (zh) | 一种在互联网中分享附件的处理方法和系统 | |
CN108471385B (zh) | 一种针对分布式系统的流量控制方法及装置 | |
Zeng et al. | Design and performance evaluation of queue-and-rate-adjustment dynamic load balancing policies for distributed networks | |
CN107180050A (zh) | 一种数据抓取系统及方法 | |
US7003772B2 (en) | Policy management for distributed computing and a method for aging statistics | |
US9363199B1 (en) | Bandwidth management for data services operating on a local network | |
CN103617083A (zh) | 存储调度方法和系统、作业调度方法和系统及管理节点 | |
CN113765969A (zh) | 一种流量控制方法和装置 | |
CN109194759B (zh) | 一种在前端降级的网络访问方法及系统 | |
Al-Sayyed et al. | A new approach for database fragmentation and allocation to improve the distributed database management system performance |
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 |