CN101976247B - Rss数据采集方法及系统 - Google Patents
Rss数据采集方法及系统 Download PDFInfo
- Publication number
- CN101976247B CN101976247B CN 201010503936 CN201010503936A CN101976247B CN 101976247 B CN101976247 B CN 101976247B CN 201010503936 CN201010503936 CN 201010503936 CN 201010503936 A CN201010503936 A CN 201010503936A CN 101976247 B CN101976247 B CN 101976247B
- Authority
- CN
- China
- Prior art keywords
- task
- rss
- data source
- acquisition
- formation
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种RSS数据采集方法,包括:S1:在预定采集周期T内,将S个RSS数据源分配为N个采集队列的采集任务,每个采集任务间隔为t分钟,t≤T;S2:N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库;S3:每隔预定的时间按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行S1,按调整后的更新周期分配任务。还公开了一种RSS数据采集系统,包括:任务分配模块、数据采集模块和周期更新模块。本发明提高了采集效率,并能采集到及时更新的RSS数据。
Description
技术领域
本发明涉及网络数据采集技术领域,特别涉及一种RSS数据采集方法及系统。
背景技术
随着互联网的飞速发展,信息共享已经成为一个趋势。各大网站都支持简易信息聚合(Really Simple Syndication,RSS)来共享内容。RSS为快速的分享信息提供便捷。随之而来,高效准确的采集RSS数据成为一个技术研究方向。比如国内现有的抓虾网、鲜果网等依靠RSS数据采集技术分享RSS内容。
现有的RSS采集技术需要手动更新数据或是循环更新,有以下缺陷:
1、手动更新数据源不能及时聚集信息;
2、在循环更新中,由于数据源的更新周期不匹配,循环更新方法采集的数据可能是数据源没有更新或早已更新的数据。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:在进行RSS数据采集时,如何聚集信息,并能及时更新数据。
(二)技术方案
为解决上述技术问题,本发明提供了一种RSS数据采集方法,包括以下步骤:
一种RSS数据采集方法,包括以下步骤:
S1:在预定采集周期T内,将S个RSS数据源分配为N个采集队列的采集任务,每个任务间隔为t分钟,其中t≤T,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕;
S2:N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库;
S3:每隔预定的时间按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行S1,按调整后的更新周期分配任务。
其中,在步骤S2的采集过程中,若采集队列长时间未获取任务,则把该采集队列对应的采集任务重新平均分配到其他采集队列中。
其中,所述步骤S3中按如下公式调整更新周期:
Tnew=time-time×(k-m)/m×(pr+1)×v;
其中,RSS权重值pr=用户订阅总量×订阅权重因子+日平均浏览量×浏览权重因子,time为前一次的更新周期,k为m次采集累计更新数据源数量,m为采集次数,v调节因子。
其中,所述步骤S3中预定的时间为每天、每周或每个月。
其中,所述更新周期的初始值设为RSS数据源更新的最小时间间隔。
一种RSS数据采集系统,包括:
任务分配模块,用于在预定采集周期T内,将S个RSS数据源分配为N个采集队列的采集任务,每个任务间隔为t分钟,其中t≤T,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕;
数据采集模块,用于N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库;
周期更新模块,用于每隔预定的时间按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行任务分配模块,按调整后的更新周期分配任务。
(三)有益效果
本发明采用分布式多线程异步采集数据,提高了采集效率,并根据采集周期和RSS数据权重动态调整采集周期,能采集到及时更新的RSS数据。
附图说明
图1是本发明实施例的一种RSS数据采集方法流程图;
图2是本发明另一实施例的一种RSS数据采集方法流程图;
图3是本发明实施例的一种RSS数据采集系统结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
如图1所示,为本发明实施例的一种RSS数据采集方法流程图,包括:
步骤S101,在预定采集周期T内(单位为分钟),将S个RSS数据源分配为N个采集队列的采集任务,每个采集任务间隔为t分钟,每个采集队列在每个任务间隔内的采集任务中数据源大约为S×t/(T×N)个,其中t≤T,具体数据源个数由以下分配方式决定。其中,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,为达到平均分布效果,即每个间隔单位t(例如1分钟)采集RSS数据源数量接近,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕。其中,更新周期的初始值设为RSS数据源更新的最小时间间隔,该最小时间间隔是从RSS数据的XML文档中每篇文章的发布时间间隔的最小值。
本实施例中利用一台服务器来实现任务的分配,N台采集服务器采集数据,每台服务器包含一个采集队列,数量N由网络带宽、机器硬件配置和采集周期T调整,原则:在规定的采集周期T内可以实现正常采集。
步骤S102,N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库。采集服务器程序从任务服务器领取采集任务(M条任务)。对RSS数据源数据进行异步访问,可以高效利用带宽。采集数据后根据RSS数据源的编码格式解析XML文档,取出信息项比较最后更新日期,大于RSS数据源最后更新日期的项保存入库。每间隔时间内(任务中心配置,如1分钟)获取一次任务列表,开启新线程执行采集任务,循环下去。如果采集队列长时间未获取任务(可能采集服务器出现故障),任务服务器会把对应次采集服务器的任务列表任务重新分配,均衡到其他采集队列中,实现动态调整采集队列。采集数据保存到数据服务器上的数据库中。
步骤S103,每隔预定的时间,一般为每天、每周或每个月,按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行S101,按调整后的更新周期分配任务。按如下公式调整更新周期:
Tnew=time-time×(k-m)/m×(pr+1)×v;
其中,RSS权重值pr=用户订阅总量×订阅权重因子+日平均浏览量×浏览权重因子,time为前一次的更新周期,k为m次采集累计更新数据源数量,m为采集次数,v调节因子,该调节因子可配置,以使计算出来的时间达到最佳效果,即实现S个数据源能平均分配到N个队列中。上述用户订阅总量和日平均浏览量不确定可以设为1。RSS权重值pr设置在0~10之间,默认为0,当计算得到的pr大于10时,采用公式:pr=pr/MAX(pr)×10进行缩放,MAX为最大值函数。
本实施例中,调整更新周期的计算在任务调度服务器或者单独一台服务器运行,计算后的结果同步更新到任务服务器,任务服务器根据更新周期重新生成任务采集队列。
实施例2
如图2所示,为本发明另一实施例的一种RSS数据采集方法流程图,包括:
步骤S201,在预定采集周期T内(单位为分钟),将S个RSS数据源分配为N个采集队列的采集任务,每个采集任务间隔为t分钟,每个采集队列在每个任务间隔内的采集任务中数据源大约为S×t/(T×N)个,其中t≤T,具体数据源个数由以下分配方式决定。其中,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,为达到平均分布效果,即每个间隔单位t(例如1分钟)采集RSS数据源数量接近,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕。其中,更新周期的初始值设为RSS数据源更新的最小时间间隔,该最小时间间隔是从RSS数据的XML文档中每篇文章的发布时间间隔的最小值。
本实施例中利用一台服务器来实现任务的分配,N台采集服务器采集数据,每台服务器包含一个采集队列,数量N由网络带宽、机器硬件配置和采集周期T调整,原则:在规定的采集周期T内可以实现正常采集。
步骤S202,个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库。采集服务器程序从任务服务器领取采集任务(M条任务)。对RSS数据源数据进行异步访问,可以高效利用带宽。采集数据后根据RSS数据源的编码格式解析XML文档,取出信息项比较最后更新日期,大于RSS数据源最后更新日期的项保存入库。每间隔时间内(任务中心配置,如1分钟)获取一次任务列表,开启新线程执行采集任务,循环下去。如果采集队列长时间未获取任务(可能采集服务器出现故障),任务服务器会把对应次采集服务器的任务列表任务重新分配,均衡到其他采集队列中,实现动态调整采集队列。采集数据保存到数据服务器上的数据库中。
步骤S203,每隔预定的时间,一般为每天、每周或每个月,按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行S201,按调整后的更新周期分配任务。按如下公式调整更新周期:
Tnew=time-time×(k-m)/m×(pr+1)×v;
其中,RSS权重值pr=用户订阅总量×订阅权重因子+日平均浏览量×浏览权重因子,time为前一次的更新周期,k为m次采集累计更新数据源数量,m为采集次数,v调节因子,该调节因子可配置,以使计算出来的时间达到最佳效果,即实现S个数据源能平均分配到N个队列中。上述用户订阅总量和日平均浏览量不确定可以设为1。RSS权重值pr设置在0~10之间,默认为0,当计算得到的pr大于10时,采用公式:pr=pr/MAX(pr)×10进行缩放,MAX为最大值函数。
本实施例中,调整更新周期的计算在任务调度服务器或者单独一台服务器运行,计算后的结果同步更新到任务服务器,任务服务器根据更新周期重新生成任务采集队列。
系统实施例
本发明还提供了一种RSS数据采集系统,如图2所示,包括:任务分配模块,用于在预定采集周期T内,将S个RSS数据源分配为N个采集队列的采集任务,每个任务间隔为t分钟,其中t≤T,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕。
数据采集模块,用于N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库。
周期更新模块,用于每隔预定的时间按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行任务分配模块,按调整后的更新周期分配任务。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (6)
1.一种RSS数据采集方法,其特征在于,包括以下步骤:
S1:在预定采集周期T内,将S个RSS数据源分配为N个采集队列的采集任务,每个任务间隔为t分钟,其中t≤T,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕;
S2:N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库;
S3:每隔预定的时间按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行S1,按调整后的更新周期分配任务。
2.如权利要求1所述的RSS数据采集方法,其特征在于,在步骤S2的采集过程中,若采集队列长时间未获取任务,则把该采集队列对应的采集任务重新平均分配到其他采集队列中。
3.如权利要求1所述的RSS数据采集方法,其特征在于,所述步骤S3中按如下公式调整更新周期:
Tnew=time-time×(k-m)/m×(pr+1)×v;
其中,RSS权重值pr=用户订阅总量×订阅权重因子+日平均浏览量×浏览权重因子,time为前一次的更新周期,k为m次采集累计更新数据源数量,m为采集次数,v调节因子。
4.如权利要求1所述的RSS数据采集方法,其特征在于,所述步骤S3中预定的时间为每天、每周或每个月。
5.如权利要求1~4中任一项所述的RSS数据采集方法,其特征在于,所述更新周期的初始值设为RSS数据源更新的最小时间间隔。
6.一种RSS数据采集系统,其特征在于,包括:
任务分配模块,用于在预定采集周期T内,将S个RSS数据源分配为N个采集队列的采集任务,每个任务间隔为t分钟,其中t≤T,分配采集任务的方式为:
S个数据源平均分配到N个队列中,针对一个任务队列,将任务分配到T分钟内,从计数i=1,j=1开始,计算数据源更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点,其中mod为取模计算,n=0,1,2,3…M,M为使(i mod Tj)+1+Tj×n小于等于T的最大自然数,i加1,j加1,i=2,j=2,再计算下一个更新周期为Tj分钟的任务Sj,均分到(i mod Tj)+1+Tj×n时间点;同上处理,当i=T时,i再重新从1开始循环计数,直到j=Sq,Sq为第q个队列中采集RSS数据源的数量,分配完毕;
数据采集模块,用于N个采集队列按采集任务间隔分别获取所述采集任务并分布式多线程异步采集数据,将更新的数据存入数据库;
周期更新模块,用于每隔预定的时间按RSS数据源的前一次更新周期和不同权重调整更新周期,并执行任务分配模块,按调整后的更新周期分配任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010503936 CN101976247B (zh) | 2010-09-30 | 2010-09-30 | Rss数据采集方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010503936 CN101976247B (zh) | 2010-09-30 | 2010-09-30 | Rss数据采集方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976247A CN101976247A (zh) | 2011-02-16 |
CN101976247B true CN101976247B (zh) | 2013-01-16 |
Family
ID=43576133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010503936 Active CN101976247B (zh) | 2010-09-30 | 2010-09-30 | Rss数据采集方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976247B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188088B (zh) * | 2011-12-27 | 2015-11-18 | 北京新媒传信科技有限公司 | 设备信息采集系统及方法 |
CN104182552B (zh) * | 2014-08-08 | 2017-04-12 | 北京大学 | 一种自适应的传感器数据抓取方法及装置 |
CN104580017B (zh) * | 2014-12-30 | 2018-04-06 | 东软集团股份有限公司 | 基于rss的网络会话分发方法及系统 |
CN107993172B (zh) * | 2016-11-01 | 2021-08-10 | 北京师范大学 | 一种城市生态辨识系统 |
CN108268543B (zh) * | 2016-12-31 | 2021-04-06 | 中国移动通信集团江西有限公司 | 数据库采集方法和装置 |
CN106780154B (zh) * | 2017-01-23 | 2020-10-16 | 国网山东省电力公司电力科学研究院 | 多线程信息聚合的输变电工程建设过程环保措施监控系统及方法 |
CN107612842B (zh) * | 2017-09-07 | 2020-03-31 | 携程商旅信息服务(上海)有限公司 | 基于令牌管理的数据采集方法、系统、设备及存储介质 |
JP6859922B2 (ja) * | 2017-10-24 | 2021-04-14 | オムロン株式会社 | 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 |
CN108681579A (zh) * | 2018-05-10 | 2018-10-19 | 北京鼎泰智源科技有限公司 | 一种大数据遗漏率分析方法 |
CN109933611A (zh) * | 2019-02-22 | 2019-06-25 | 深圳达普信科技有限公司 | 一种自适应的数据采集方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446910A (zh) * | 2008-12-08 | 2009-06-03 | 哈尔滨工程大学 | 基于smp的aedf任务调度方法 |
CN101452404A (zh) * | 2008-12-09 | 2009-06-10 | 中兴通讯股份有限公司 | 一种嵌入式操作系统的任务调度装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7154876B2 (en) * | 2002-12-16 | 2006-12-26 | Avaya Technology, Inc. | Exploratory polling for periodic traffic sources |
-
2010
- 2010-09-30 CN CN 201010503936 patent/CN101976247B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446910A (zh) * | 2008-12-08 | 2009-06-03 | 哈尔滨工程大学 | 基于smp的aedf任务调度方法 |
CN101452404A (zh) * | 2008-12-09 | 2009-06-10 | 中兴通讯股份有限公司 | 一种嵌入式操作系统的任务调度装置及方法 |
Non-Patent Citations (1)
Title |
---|
尹佳等.基于多级优先队列模型的RSS更新任务调度.《四川大学学报(自然科学版)》.2008,第45卷(第5期),第1085-1088页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101976247A (zh) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101976247B (zh) | Rss数据采集方法及系统 | |
CN103248659B (zh) | 一种云计算资源调度方法和系统 | |
CN102508709B (zh) | 购供售一体化电能量采集与监控系统中基于分布式缓存的采集任务调度方法 | |
CN103458052B (zh) | 一种基于IaaS云平台的资源调度方法和装置 | |
CN103152393B (zh) | 一种云计算的计费方法和计费系统 | |
MX2014002956A (es) | Mercado digial para la distribucion a tiempo de datos de evento. | |
WO2014067142A1 (en) | Real-time data management for a power grid | |
JP2016501404A (ja) | アプリケーション・ソフトウェアの表示方法及びデバイス | |
CN102681999A (zh) | 一种用户行为信息收集及信息发送方法及装置 | |
CN103500213B (zh) | 基于预读取的页面热点资源更新方法和装置 | |
CN107025236A (zh) | 清算系统间的数据处理方法及数据清算系统 | |
WO2016105546A1 (en) | Dynamic hierarchical performance balancing of computational resources | |
CN102902775A (zh) | 互联网实时计算的方法和系统 | |
CN104657457B (zh) | 一种用户评价视频的数据处理方法、视频推荐方法及装置 | |
CN105279158A (zh) | 基于复杂查询条件下的酒店价格排序方法 | |
Koulamas et al. | A unified analysis for the single-machine scheduling problem with controllable and non-controllable variable job processing times | |
CN103559282B (zh) | 实时系统数据的去重方法和装置 | |
CN112822281B (zh) | 流量分配方法、装置、终端设备及计算机可读存储介质 | |
CN111126779B (zh) | 客服工单派发方法及装置 | |
CN108920098A (zh) | 一种存储管理系统收集信息的方法、系统及设备 | |
CN101383721B (zh) | 一种性能计数器的派生处理方法及装置 | |
CN112967091A (zh) | 营销服务事件的智能分发方法、系统及存储介质 | |
CN108536525A (zh) | 一种宿主机调度方法及装置 | |
CN109144689A (zh) | 任务调度方法、装置及计算机程序产品 | |
CN107710168B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building A block 5 layer Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |