1.本技术涉及计算机技术领域,尤其涉及一种数据采集方法及装置。
背景技术:2.随着互联网技术的发展,对于各个网站不断更新的新闻、帖子等频道页面数据进行采集越来越普遍。
3.目前,在采集网页频道数据的过程中,采用的是对网站中的所有频道进行轮询和逐条采集的方法。
4.但是,这种方法没有考虑到频道的数量,对网站中大量的频道进行数据采集时没有针对性,导致数据采集的效率低下。
技术实现要素:5.本技术实施例提供一种数据采集方法及装置,用以解决现有技术中对频道进行数据采集的效率低下的问题。
6.为了解决上述技术问题,本技术实施例采用以下技术方案:
7.第一方面,本技术提供了一种数据采集方法,包括:
8.基于网页频道的更新项数目,确定网页频道的排序参数值;
9.获取所述排序参数值大于第一阈值的前m个网页频道;
10.基于获取的所述前m个网页频道,进行数据采集;
11.其中,m为正整数。
12.第二方面,本技术提供了一种数据采集装置,包括:
13.确定模块,用于基于网页频道的更新项数目,确定网页频道的排序参数值;
14.获取模块,用于获取所述排序参数值大于第一阈值的前m个网页频道;
15.数据采集模块,用于基于获取的所述前m个网页频道,进行数据采集;
16.其中,m为正整数。
17.第三方面,本技术提供了一种服务器,包括:处理器,存储器及存储在所述存储器上并在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现第一方面的方法的步骤。
18.第四方面,本技术提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现第一方面的方法的步骤。
19.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
20.在本技术实施例中,基于网页频道的更新项数目,确定网页频道的排序参数值;获取所述排序参数值大于第一阈值的前m个网页频道;基于获取的所述前m个网页频道,进行数据采集;其中,m为正整数。如此,可以通过计算网页频道的排序参数值,根据排序参数值的大小来进行数据采集,从而可以更加有针对性地进行数据采集,提高对网页频道进行数据采集的效率。
附图说明
21.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
22.图1为本技术实施例提供的一种数据采集方法的流程图;
23.图2为本技术实施例提供的一种数据采集方法的流程图;
24.图3为本技术实施例提供的一种数据采集方法的流程图;
25.图4为本技术实施例提供的一种数据采集方法的流程图;
26.图5为本技术实施例提供的一种数据采集装置的结构框图;
27.图6为本技术实施例提供的一种服务器的结构框图。
具体实施方式
28.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
30.以下结合附图,详细说明本技术各实施例提供的技术方案。
31.图1是本技术实施例提供的一种数据采集方法的流程图。参照图1,本技术实施例提供的数据采集方法可以包括:
32.步骤110,基于网页频道的更新项数目,确定网页频道的排序参数值。
33.其中,所述网页频道可以是某一个网站里面的频道,也可以是全网即所有网站的频道。例如,在新浪网站中,新浪健康、新浪河北等等就是网页频道。一个网站可以分为三级页面:一级页面也就是网站的首页;二级页面是链接到首页的,即从首页点击进去的就是二级页面;三级页面是链接到二级页面,即从二级页面点击进去的就是三级页面。频道可以是这个网站内容的分类,往往在首页会有标题,比如“娱乐”、“音乐”等等。所谓网站(website),是指在网际网路(因特网)上,根据一定的规则,使用超文本标记语言(hyper text markup language,html)等工具制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的资讯(信息),或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯(信息)或者享受网络服务。网页可以是一个文件,网页可以存放在世界某个角落的某一台计算机中,而这台计算机是与互联网相连的。网页可以经由网址来识别与存取,在浏览器输入网址后,经过一段复杂而又快速的程序,网页文件可以被传送到计算机,然后再通过浏览器解释网页的内容,最后展示给用户。
34.在本技术实施例中,网页频道的更新项数目可以为网页频道的链接对应的显示页
面上的更新项数目。一条更新项可以为一条更新信息,例如为更新的一条新闻等。步骤110中基于网页频道的更新项数目,确定网页频道的排序参数值可以有多种实现方式。下面举例分别进行说明。
35.在本技术的一个实施例中,所述更新项数目可以包括:在单位统计周期内更新的第一更新项数目和本次更新的第二更新项数目;步骤110可以具体包括:将所述第二更新项数目与所述第一更新项数目的比值,作为所述网页频道的排序参数值。
36.如此,可以通过本次更新的第二更新项数目与在单位统计周期内更新的第一更新项数目,确定网页频道的排序参数值。由于网页频道的排序参数值是由第二更新项数目与第一更新项数目的比值来确定,通过排序参数值可以直观地反映出本次更新的第二更新项数目在单位统计周期内更新的第一更新项数目的占比,此占比越大则表明本次更新的第二更新项数目的比重越高,本次更新比重高的网页频道一般而言是数据采集所针对的网页频道,价值相对越高,可以优先从这些网页频道采集数据。如此,通过从海量网页频道中通过排序参数值获取价值相对较高的网页频道,可以更加有针对性地对网页频道进行数据采集。
37.可以理解的是,所述单位统计周期可以根据实际应用情况进行选择,且所述单位统计周期可以是从当前时刻开始往前(即往历史时间点)计算的统计周期。本技术实施例中的单位统计周期可以以天计,也可以以小时或分钟计,本技术不做限定。所述在单位统计周期内更新的更新项总数可以用total_count表示,所述本次更新的更新项数目可以用new_count表示,所述网页频道的排序参数值可以用rank表示,则rank=new_count/total_count。举例而言,所述单位统计周期可以为5天,频道在5天内更新的更新项总数可以为10000,而本次更新的更新项数目可以为100,则此时排序参数值可以为0.01;所述单位统计周期也可以为7天,频道在7天内更新的更新项总数可以为15000,而本次更新的更新项数目可以为300,则此时排序参数值可以为0.02。
38.在本技术的另一个实施例中,所述更新项数目可以包括:在第一统计周期内更新的第三更新项数目和在第二统计周期内更新的第四更新项数目,其中第二统计周期可小于所述第一统计周期。举例而言,所述第一统计周期可以是所述第二统计周期的整数倍,比如2至1000倍。第二统计周期可以按分或小时计,所述第一统计周期可以按天或小时计,例如第二统计周期可以为40分钟,第一统计周期可以为1天或7天。相应地,步骤110可以具体包括:将所述第四更新项数目与所述第三更新项数目的比值,作为所述网页频道的排序参数值。
39.由于网页频道的排序参数值是由第四更新项数目与第三更新项数目的比值来确定,通过排序参数值可以直观地反映出第二统计周期内更新的第四更新项数目在第一统计周期内更新的第三更新项数目的占比,此占比越大则表明本次更新的第四更新项数目的比重越高,第二统计周期内更新比重高的网页频道一般而言是数据采集所针对的网页频道,价值相对越高,可以优先从这些网页频道采集数据。如此,通过从海量网页频道中通过排序参数值获取价值相对较高的网页频道,可以更加有针对性地对网页频道进行数据采集。
40.可以理解的是,所述第一统计周期和所述第二统计周期可以根据实际应用情况进行选择,且所述第一统计周期和所述第二统计周期均可以是从当前时刻开始往前(即往历史时间点)计算的统计周期。举例而言,所述第一统计周期可以为1天,所述第二统计周期可
以为40分钟,频道在1天内更新的第三更新项数目可以为100,频道在40分钟内更新的第四更新项数目可以为10,则此时排序参数值可以为0.1;所述第一统计周期也可以为7天,所述第二统计周期可以为40分钟,频道在7天内更新的第三更新项数目可以为1000,频道在40分钟内更新的第四更新项数目可以为10,则此时排序参数值可以为0.01。
41.可以理解的是,以上仅是示例列出的确定网页频道的排序参数值的方式,在本技术实施例中,任何能够体现网页频道的重要性或价值型的方式均可以用于确定网页频道的排序参数值。例如,可以将在指定时段内网页频道的更新项数目,直接作为网页频道的排序参数值,也可以将在指定时段内网页频道的更新项数目乘以权重系数后的结果作为网页频道的排序参数值。
42.步骤120,获取所述排序参数值大于第一阈值的前m个网页频道。
43.其中,m为正整数;所述第一阈值可以根据实际应用情况进行设置;所述前m个网页频道可以是根据所述排序参数值由大到小且所述排序参数值大于第一阈值的顺序获取的。
44.举例而言,一个网站的频道总数为3万,有1万频道的排序参数值大于0.005,另外2万频道的排序参数值小于或等于0.005,则此时可以将所述第一阈值设置为0.005,m的取值可以为10000。如此,可以通过设置第一阈值来控制采集的频道数目。
45.步骤130,基于获取的所述前m个网页频道,进行数据采集。
46.在本技术实施例中,在确定好网页频道的数目m之后,对所述前m个网页频道进行数据采集,从而可以优先采集排序参数值高的网页频道。
47.其中,所述采集的数据可以为所述网页频道的链接和标题。在实际应用的情况中,可以只对网页频道的链接和标题进行采集,无需对网页频道的全部内容进行采集。
48.可以理解的是,在对网页频道进行数据采集的情况下,可以是针对某一个特定的大网站,然后对这个网站下的频道进行数据采集;也可以是针对全网,即互联网的所有网站下的频道进行数据采集。
49.本技术实施例提供的数据采集方法,通过计算网页频道的排序参数值,根据排序参数值的大小来进行数据采集,从而可以更加有针对性地进行数据采集,提高对网页频道进行数据采集的效率。
50.在本技术的一个实施例中,在步骤110基于网页频道的更新项数目,确定网页频道的排序参数值之前,本技术实施例提供的数据采集方法还可以包括:获取网页频道的采集深度值以及采集数目限制值;基于所述采集深度值以及所述采集数目限制值,获取多个目标网页频道。相应地,步骤110中所述基于网页频道的更新项数目,确定网页频道的排序参数值可包括:基于所述多个目标网页频道中各个网页频道的更新项数目,确定各个网页频道的排序参数值。如此,通过网页频道的采集深度值以及采集数目限制值,可以确定需要的多个目标网页频道,并可只对这些网页频道确定排序参数值,而无需对所有网页频道确定排序参数值。这多个目标网页频道可以为需要收录的网页频道,这样,通过只对收录的网页频道确定排序参数值,可以缩小需要确定排序参数值的网页频道的范围,从而减小计算的工作量。同时通过设置网页频道的采集深度值以及采集数目限制值可以更好地满足用户对收集的网页频道的要求。
51.其中,所述采集深度值可以反映网页的级数。采集深度值的初始取值可以为0或1。以1为例,例如,一个网站的一级页面(即首页)的采集深度值可以为1,从一级页面点击进去
的二级页面的采集深度值可以为2,从二级页面点击进去的三级页面的采集深度值可以为3,等等,依此类推。以0为例,例如,一个网站的一级页面(即首页)的采集深度值可以为0,从一级页面点击进去的二级页面的采集深度值可以为1,从二级页面点击进去的三级页面的采集深度值可以为2,依此类推。
52.在本技术实施例中,采集深度值可以针对各个网页频道均相同,而不区分域名是否相同。举例而言,可以针对所有网页频道将采集深度值设置为相同的数值,这样可以方便对各个域名下的网页频道进行同标准采集,便于后续进行网页频道的管理。同时,也可以针对相同的域名设置相同的采集深度值,而针对不同的域名设置不同的采集深度值,这样一方面可以保证在相同的域名下网页频道的采集标准相同,方便后续对相同域名进行管理,另一方面,通过针对不同的域名设置不同的采集深度值可以方便区分用户所关注的域名下的网页频道和不关注的域名下的网页频道,更好地满足用户对各种网页频道的需求。
53.本技术实施例中的采集数目限制值可以为针对域名进行数据采集的阈值。举例而言,若针对某一域名(例如,新浪)的采集数目限制值为20,则在进行数据采集的过程中,若在此域名下对网页频道的采集数量达到20,则可以不再继续在此域名下进行数据采集。本技术实施例可以针对所有域名设置相同的采集数目限制值,这样可以对各个域名下的网页频道进行相同数目的采集,便于后续进行不同域名下网页频道间的对比分析。同时,也可以针对不同域名,设置不同的采集数目限制值。如此,可以对关注的域名采集更多的网页频道,而对不关注的域名采集更少的网页频道,更好地满足实际需求。
54.在基于采集数目限制值和采集深度值获取多个目标网页频道的过程中,可以按照深度值的大小顺序,先获取某一域名下上一级的网页频道,在上一级的网页频道获取完毕之后,如果仍未达到针对域名的采集数目限制值,则可以继续获取这一域名下的下一级的网页频道。当然,若上一级的网页频道获取完毕之前即已达到针对域名的采集数目限制值,可以按照此域名下网页频道的显示顺序依次获取个数为采集数目限制值的网页频道。举例而言,若针对某一域名(例如,新浪)的采集数目限制值为50,先在新浪的首页下获取网页频道,此时获取到的网页频道数目只有30,则再继续在新浪的从首页点进的二级页面下获取网页频道,此时在新浪的二级页面中获取到的网页频道数目为20,则获取网页频道完毕;或者,在新浪的首页下可以按照新浪的首页下网页频道的显示顺序依次获取网页频道,若获取到的网页频道数目已经达到50,则不在下一级页面获取网页频道。
55.下面以采集深度值的初始取值为0,针对所有网页频道的采集深度值为1,且针对所有域名设置的采集数目限制值为20为例进行说明。需了解的是,这里的描述仅是示例,而不意为限制。
56.例如,可以先在新浪这一域名的首页下获取网页频道,此时获取到的网页频道数目只有13,则再继续在新浪的从首页点进的二级页面下获取网页频道,此时可以在新浪的二级页面中获取到的网页频道数目为7,则获取网页频道完毕;或者,在新浪的首页下获取网页频道完毕之前,获取到的网页频道数目已经达到20,则可以按照新浪的首页下网页频道的显示顺序依次获取20个网页频道,无需再从新浪的二级页面下获取网页频道;又或者,可以先在新浪这一域名的首页下按照网页频道的显示顺序依次获取10个网页频道,再在腾讯这一域名的首页下按照网页频道的显示顺序依次获取10个网页频道,此时获取网页频道完毕。
57.在获取多个目标网页频道之后,后续即可基于所述多个目标网页频道中各个网页频道的更新项数目,确定各个网页频道的排序参数值,并可获取排序参数值大于第一阈值的前m个网页频道;基于获取的所述前m个网页频道,进行数据采集。在数据采集的过程中,可以每隔第一预设周期获取前m个网页频道。每一次在获取前m个网页频道之后,可以保存获取的前m个网页频道中各个网页频道上的项目,并将本次获取网页频道上的项目与下一次获取的网页频道上的项目进行比较,通过比较可以获得网页频道的更新项数目。以前m个网页频道中的某一个网页频道(下文称为指定网页频道)为例,在第一次获取所述指定网页频道上的项目之后,可以保存第一次获取的所述指定网页频道上的项目,在第二次获取所述指定网页频道上的项目之后,可以保存第二次获取的所述指定网页频道上的项目。之后,可以将第二次获取的所述指定网页频道上的项目与第一次获取的所述指定网页频道上的项目进行对比,通过对比可以确定出网页频道的更新项数目。具体地,第一次获取的所述指定网页频道上的项目为p,第二次获取的所述指定网页频道上的项目为q,则所述指定网页频道的更新项数目可以为q-p。
58.在本技术实施例中,所述指定网页频道的更新项即可对应于需要采集的数据。在数据采集的过程中,可以采集更新项上的部分内容或全部内容。
59.图2是本技术实施例提供的一种数据采集方法的流程图。参照图2,在图1的基础上,本技术实施例提供的数据采集方法可以包括:
60.步骤210,基于网页频道的更新项数目,确定网页频道的排序参数值;
61.需了解的是,在步骤210之后,可以既进行步骤120-130,又进行后续步骤220-230。在步骤210之后的具体步骤可以根据实际应用情况进行设置,在此不做限定。例如,可以考虑从当前时刻开始往前(即往历史时间点)计算的统计周期内,对历史价值相对较高的网页频道也进行数据采集,则可以在步骤210之后,既进行步骤120-130,又进行后续步骤220-230。
62.步骤220,获取所述排序参数值小于或等于所述第一阈值且大于第二阈值,同时所述更新项数目满足预设条件的前n个网页频道。
63.其中,所述第一阈值可以大于所述第二阈值,n为正整数。
64.可选地,所述更新项数目可以包括在单位统计周期内更新的更新项总数,所述预设条件可以包括:在单位统计周期内更新的更新项总数大于预设值。
65.所述第二阈值与所述预设值均可以根据实际应用情况进行设置。所述前n个网页频道可以是根据所述排序参数值由大到小以及所述排序参数值小于所述第一阈值且大于第二阈值,同时所述更新项数目满足预设条件以及所述更新项数目由大到小的顺序获取的。
66.举例而言,一个网站的频道总数为3万,有1万频道的排序参数值大于0.005,1万频道的排序参数值小于或等于0.005且大于0.001,另外1万频道的排序参数值小于或等于0.001,则此时可以将所述第二阈值设置为0.001;假设预设值为50,而在排序参数值小于或等于0.005且大于0.001的1万频道中,只有6000频道在7天内更新的更新项总数大于50,则此时n的取值可以为6000。如此,可以通过设置第二阈值和预设值来进一步控制采集的频道数目。
67.步骤230,基于获取的所述前n个网页频道,进行数据采集。
68.在本技术实施例中,在确定好网页频道的数目n之后,对所述前n个网页频道进行数据采集,从而可以进一步采集排序参数值较低但在单位统计周期内更新的更新项总数较高的网页频道。
69.本技术实施例提供的数据采集方法,通过确定网页频道的排序参数值,并获取排序参数值小于或等于第一阈值且大于第二阈值,同时所述更新项数目满足预设条件的前n个网页频道,可以从排序参数值相对较小(即,小于或等于第一阈值但大于第二阈值)的网页频道中筛选出相对有价值(即,在某一或某些维度上满足预设条件)的前n个网页频道,从而可以保证那些排序参数值相对较小但某一方面满足需求的网页频道也可以筛选出,扩展了网页频道的采集范围,避免了遗漏相对有价值的网页频道。
70.在本技术的一个实施例中,所述前m个网页频道的获取时间间隔可以为第一预设周期,所述前n个网页频道的获取时间间隔可以为第二预设周期,所述第一预设周期可以与所述第二预设周期不同。
71.需了解的是,在实际应用情况中,所述第二预设周期可以比所述第一预设周期短,也可以比所述第一预设周期长。举例而言,所述前m个网页频道的获取时间间隔可以为20分钟,所述前n个网页频道的获取时间间隔可以为6分钟。也就是说,获取前n个网页频道的频率可以大于获取前m个网页频道的频率。如此,可以对排序参数值没有前m个网页频道高但在单位统计周期内更新的更新项总数较高的网页频道进行补充数据采集。
72.图3是本技术实施例提供的一种数据采集方法的流程图。参照图3,在图1或图2的基础上,本技术实施例提供的数据采集方法还可以包括:
73.步骤310,每隔第三预设周期获取所有网页频道。
74.其中,所述第三预设周期的大小可以根据实际应用情况进行设置。举例而言,所述第三预设周期可以与所述第一预设周期相同,或者可以与所述第二预设周期相同,或者也可以大于所述第一预设周期。在实际应用中,所述第三预设周期可以相对于第一预设周期和第二预设周期最大,即,所述第三预设周期可以同时大于所述第二预设周期和所述第一预设周期。
75.根据前文举例可知,所述第一预设周期可以为20分钟,所述第二预设周期可以为6分钟,则所述第三预设周期可以为60分钟;也就是说,每隔60分钟获取所有网页频道。
76.步骤320,基于获取的所有网页频道,进行数据采集。
77.在本技术实施例中,基于每隔第三预设周期获取的所有网页频道,可以对所有网页频道进行数据采集,从而查漏补缺,对在单位统计周期内没有更新或者更新较少的网页频道进行数据采集。
78.本技术实施例提供的数据采集方法,可以每隔第三预设周期对所有网页频道进行数据采集,从而可以进一步对前两种数据采集方式进行查漏补缺,对在单位统计周期内没有更新或者更新较少的网页频道进行数据采集。
79.可选地,在本技术的一个实施例中,在确定网页频道的排序参数值之前,本技术实施例提供的数据采集方法还可以包括对网页频道的前处理。具体地,首先可以对网页频道的链接和标题进行简单地过滤,可以将一些不符合链接规范的网页频道进行剔除。例如,http://.anjuke.com/help/question,这个链接的格式不正确,可以优先过滤掉。然后可以对网页频道的链接进行去重判别,例如,可以使用布隆过滤器模块(reids-bloom)组件完成
去重判别,也就是把重复的链接去除掉。之后,可以将没有进行处理过的链接(即,剩下的链接)进行预测,得到预测结果,所述预测结果可用于指示链接是否属于网页频道的链接。通过预测可以从链接中找出属于网页频道的链接。这里预测得到结果可以是网页频道首页链接(例如,可以是频道首页入口的链接)、网页频道下的具体链接(指示网页频道下有价值页面(例如新闻、帖子)的链接),以及非频道链接。由于预测会有错误、遗漏的情况,因而对预测为属于网页频道的链接和标题,还可以制定强规则来对网页频道的链接和标题进行过滤。这些规则可以例如为“统一刊号”、“邮发代号”、“广告”、“版权”、“版权所有”、“版权声明”、“郑重声明”等标题规则,还可以是过滤规则,例如可以将新闻和论坛中页数超过指定页数,例如5页的频道过滤掉。之后,还可以记录域名下的网页频道数量,超过采集数目限制值的网页频道不再进行录入(即不作为目标网页频道)。
80.另外,可以对完成前处理的网页频道的链接和标题进行数据采集,记录解析好的链接和标题的深度。如果进行数据采集没有深度,则网页频道的采集深度值可以为0;而解析好的链接和标题的深度可以为1。其中,可以将频道的排序参数值、在单位统计周期内更新的更新项总数、本次更新的更新项数目、采集深度值以及域名下频道的数量信息等参数信息,更新在远程字典服务(remote dictionary server,redis)数据库中进行保存,在需要使用这些参数时从远程字典服务中读取。
81.如此,可以通过对网页频道的前处理,筛选出更有价值的网页频道进行后续的数据采集,提高对网页频道进行数据采集的效率。
82.下面结合实际的应用场景,对本技术实施例提供的数据采集方法进行进一步地详细介绍。如图4所示,本技术实施例提供的数据采集方法可以包括如下步骤:
83.步骤410,获取网页频道的采集深度值以及采集数目限制值。
84.在步骤410之前,本技术实施例提供的数据采集方法还可以包括对网页频道的前处理。具体地,首先可以对网页频道的链接和标题进行简单地过滤,可以将一些不符合链接规范的网页频道进行剔除。例如,http://.anjuke.com/help/question,这个链接的格式不正确,可以优先过滤掉。然后可以对网页频道的链接进行去重判别,例如,可以使用布隆过滤器模块(reids-bloom)组件完成去重判别,也就是把重复的链接去除掉。之后,可以将没有进行处理过的链接(即,剩下的连接)进行预测,得到预测结果,所述预测结果可用于指示链接是否属于网页频道的链接。通过预测可以从链接中找出属于网页频道的链接。这里预测得到结果可以是网页频道链接(例如,可以是频道首页入口的链接)、网页频道下的具体链接(指示网页频道下有价值页面(例如新闻、帖子)的链接),以及非频道链接。由于预测会有错误、遗漏的情况,因而对预测为属于网页频道的链接和标题,还可以制定强规则来对网页频道的链接和标题进行过滤。这些规则可以例如为“统一刊号”、“邮发代号”、“广告”、“版权”、“版权所有”、“版权声明”、“郑重声明”等标题规则,还可以是过滤规则,例如可以将新闻和论坛中页数超过指定页数,例如5页的频道过滤掉。之后,还可以记录域名下的网页频道数量,超过采集数目限制值的网页频道不再进行录入(即不作为目标网页频道)。
85.步骤420,基于所述采集深度值以及所述采集数目限制值,获取多个目标网页频道。
86.步骤430,基于所述多个目标网页频道中各个网页频道的更新项数目,确定各个网页频道的排序参数值。
87.步骤440,每隔第一预设周期获取所述排序参数值大于第一阈值的前m个网页频道,其中,m为正整数。
88.步骤450,基于获取的所述前m个网页频道,进行数据采集。
89.步骤460,每隔第二预设周期获取所述排序参数值小于或等于所述第一阈值且大于第二阈值,同时所述更新项数目满足预设条件的前n个网页频道。
90.步骤470,基于获取的所述前n个网页频道,进行数据采集。
91.需了解的是,步骤440-450与步骤460-470的顺序可以按照实际情况进行选择,在此不做限定。举例而言,在步骤430之后可以先进行步骤440-450,再进行步骤460-470;或者,在步骤430之后也可以先进行步骤460-470,再进行步骤440-450;又或者,在步骤430之后,步骤440-450与步骤460-470可以同时进行。
92.步骤480,每隔第三预设周期获取所有网页频道。
93.步骤490,基于获取的所有网页频道,进行数据采集。
94.需了解的是,步骤480-490的顺序可以按照实际情况进行选择,在此不做限定。举例而言,可以在步骤410-470之后进行步骤480-490;或者,也可以在步骤410-470之前进行步骤480-490;又或者,步骤410-470可以与步骤480-490同时进行。
95.在本技术实施例中提供网页服务的服务器可以包括主下发逻辑、次下发逻辑和补充下发逻辑。所述主下发逻辑可以为每20分钟下发排序参数值大于0.005的3万网页频道,主下发逻辑是最主要的下发逻辑,从而可以将排序参数值高的网页频道不断下发。所述次下发逻辑可以为每6分钟下发排序参数值小于或等于0.005且大于0.001,同时在7天内更新的更新项总数大于50的2万网页频道。次下发逻辑可以将现在排序参数值不高,但是将历史中有很多更新数据的网页频道进行下发,从而减少因为主下发逻辑导致排序参数值很小的网页频道无法进行下发的情况。所述补充下发逻辑可以为每小时下发所有网页频道中的2万个。补充下发逻辑的目的是为了遍历所有频道,防止因为下发逻辑而导致某些网页频道一直不更新。另外,为了减少白天网络带宽资源的占用,可以每天凌晨3点将采集过的域名下发。可以每20分钟更新对网页频道前处理的规则;例如,可以将人工制定的不需要采集的网页频道进行过滤。可以每周重置网页频道的信息,也就是说,每周重新开始计算网页频道的各种参数,例如,排序参数值,或者采集深度值。最后,还可以每20分钟检查待处理数据,检查计算的各种参数值是否异常,以及检查服务器的处理器和内存是否异常。
96.需了解的是,对网页频道的前处理过程与数据采集过程的先后顺序可以根据实际应用情况进行设置,在此不做限定。举例而言,对网页频道的前处理与数据采集可以同时进行,每个任务进程可以互不干扰。
97.在本技术实施例中,对网页频道的前处理中主要依靠预测过程,预测过程采用的是批处理,相比于单条预测,批处理有更高的执行速度,从而提高了对网页频道进行处理的效率。
98.另外,在实际应用的情况中,所述数据采集方法可以应用于服务器,并可由部署于服务器上的爬虫执行。而网页频道的下发可以通过提供网页服务的服务器的主下发模块、次下发模块和补充下发模块来实现。其中,主下发模块依据的思想可以是将排序参数值排名靠前的网页频道不断下发,交给计算机程序例如爬虫进行数据采集,从而可以不断地采集排序参数值高的网页频道,不断采集到最新的数据。但是由于可能快速两次下发频道,或
者虽然频道质量高但是在更新少的时间段进行数据采集(例如凌晨),会导致采集频道的排序参数值很低;因而,可以在次下发模块,将历史中有很多更新数据的网页频道进行下发。即便以上两个模块可以完成大部分的正常频道调度下发,但是仍有部分频道,因为调度原因(例如,在5天内网页频道没有更新数据)导致排序参数值为0,所以需要将所有的网页频道进行遍历,防止遗漏,减少偶然因素。相应地,部署有类似于爬虫之类程序的服务器可以接收提供网页服务的服务器下发的指令或者主动获取网页频道,例如,爬虫可以周期性地采集排序参数值高的网页频道,不断采集到最新的数据。采集周期可以为前文提到的第一预设周期和/或第二预设周期。即可以在第一预设周期采集前文提到的排序参数值大于第一阈值的前m个网页频道,在第二预设周期采集前文提到的所述排序参数值小于或等于所述第一阈值且大于第二阈值,同时所述更新项数目满足预设条件的前n个网页频道。还可以在第三预设周期获取所有网页频道。
99.本技术实施例提供的数据采集方法,通过计算网页频道的排序参数值,既可以根据排序参数值的大小从海量网页频道中获取价值相对较高的网页频道,从而可以更加有针对性地进行数据采集,提高对网页频道进行数据采集的效率;又可以通过获取排序参数值相对较小但某一方面满足需求的网页频道,扩展网页频道的采集范围,从而避免遗漏相对有价值的网页频道;同时可以每隔第三预设周期对所有网页频道进行数据采集,从而可以进一步对前两种数据采集方式查漏补缺,对在单位统计周期内没有更新或者更新较少的网页频道进行数据采集。
100.图5为本技术实施例提供的一种数据采集装置的结构框图。参照图5,本技术实施例提供的一种数据采集装置500,可以包括:确定模块510、获取模块520和数据采集模块530。
101.其中,所述确定模块510,用于基于网页频道的更新项数目,确定网页频道的排序参数值;
102.所述获取模块520,用于获取所述排序参数值大于第一阈值的前m个网页频道;
103.所述数据采集模块530,用于基于获取的所述前m个网页频道,进行数据采集;
104.其中,m为正整数。
105.本技术实施例提供的数据采集方法,基于网页频道的更新项数目,确定网页频道的排序参数值;获取所述排序参数值大于第一阈值的前m个网页频道;基于获取的所述前m个网页频道,进行数据采集;其中,m为正整数。如此,可以通过计算网页频道的排序参数值,根据排序参数值的大小来进行数据采集,从而可以更加有针对性地进行数据采集,提高对网页频道进行数据采集的效率。
106.可选地,在一个实施例中,在所述确定网页频道的排序参数值之后,所述获取模块520还可以用于:获取所述排序参数值小于或等于所述第一阈值且大于第二阈值,同时所述更新项数目满足预设条件的前n个网页频道;所述数据采集模块530还可以用于:基于获取的所述前n个网页频道,进行数据采集;其中,所述第一阈值大于所述第二阈值,n为正整数。如此,可以通过确定网页频道的排序参数值,并获取排序参数值小于或等于第一阈值且大于第二阈值,同时所述更新项数目满足预设条件的前n个网页频道,可以从排序参数值相对较小(即,小于或等于第一阈值但大于第二阈值)的网页频道中筛选出相对有价值(即,在某一或某些维度上满足预设条件)的前n个网页频道,从而可以保证那些排序参数值相对较小
但某一方面满足需求的网页频道也可以筛选出,扩展了网页频道的采集范围,避免了遗漏相对有价值的网页频道。
107.可选地,在一个实施例中,所述更新项数目可以包括:在单位统计周期内更新的第一更新项数目和本次更新的第二更新项数目;所述确定模块510可以具体用于:将所述第二更新项数目与所述第一更新项数目的比值,作为所述网页频道的排序参数值。如此,可以通过本次更新的第二更新项数目与在单位统计周期内更新的第一更新项数目,确定网页频道的排序参数值。由于网页频道的排序参数值是由第二更新项数目与第一更新项数目的比值来确定,通过排序参数值可以直观地反映出本次更新的第二更新项数目在单位统计周期内更新的第一更新项数目的占比,此占比越大则表明本次更新的第二更新项数目的比重越高,本次更新比重高的网页频道一般而言是数据采集所针对的网页频道,价值相对越高,可以优先从这些网页频道采集数据。如此,通过从海量网页频道中通过排序参数值获取价值相对较高的网页频道,可以更加有针对性地对网页频道进行数据采集。
108.可选地,在一个实施例中,所述前m个网页频道的获取时间间隔可以为第一预设周期,所述前n个网页频道的获取时间间隔可以为第二预设周期,所述第一预设周期与所述第二预设周期不同。如此,通过两个不同的采集周期:第一预设周期和第二预设周期获取网页频道,可以保证一方面可以获取到不同侧重点的网页数据,另一方面通过采集周期错开可以保证数据采集更加全面,避免遗漏部分重要数据。
109.可选地,在一个实施例中,所述更新项数目可以包括在单位统计周期内更新的更新项总数,所述预设条件可以包括:在单位统计周期内更新的更新项总数大于预设值。如此,可以保证筛选出的网页频道在单位统计周期的更新项总数不至于太小,进而保证排序参数值相对较小但在更新项总数这一方面满足需求的网页频道也可以筛选出,从而更好地满足用户对各种网页频道的需求。
110.可选地,在一个实施例中,所述获取模块520还可以用于:每隔第三预设周期获取所有网页频道;所述数据采集模块530还可以用于:基于获取的所有网页频道,进行数据采集。如此,可以每隔第三预设周期对所有网页频道进行数据采集,从而可以进一步对前两种数据采集方式进行查漏补缺,对在单位统计周期内没有更新或者更新较少的网页频道进行数据采集。
111.可选地,在一个实施例中,在所述基于网页频道的更新项数目,确定网页频道的排序参数值之前,所述获取模块520还可以用于:获取网页频道的采集深度值以及采集数目限制值;基于所述采集深度值以及所述采集数目限制值,获取多个目标网页频道;所述确定模块510还可以用于:基于所述多个目标网页频道中各个网页频道的更新项数目,确定各个网页频道的排序参数值。如此,通过网页频道的采集深度值以及采集数目限制值,可以确定需要的多个目标网页频道,并可只对这些网页频道确定排序参数值,而无需对所有网页频道确定排序参数值。这多个目标网页频道可以为需要收录的网页频道,这样,通过只对收录的网页频道确定排序参数值,可以缩小需要确定排序参数值的网页频道的范围,从而减小计算的工作量。同时通过设置网页频道的采集深度值以及采集数目限制值可以更好地满足用户的需求。
112.需要说明的是,本技术实施例提供的数据采集装置与上文提到的数据采集方法相对应。相关内容可参照上文对数据采集方法的描述,在此不做赘述。
113.此外,如图6所示,本技术实施例还提供一种服务器600,所述服务器600包括:处理器610,存储器620及存储在所述存储器620上并在所述处理器610上运行的程序或指令,所述程序或指令被所述处理器610执行时实现上文所描述的任一种方法的步骤。举例而言,所述程序被所述处理器620执行时实现如下过程:基于网页频道的更新项数目,确定网页频道的排序参数值;获取所述排序参数值大于第一阈值的前m个网页频道;基于获取的所述前m个网页频道,进行数据采集;其中,m为正整数。如此,可以通过计算网页频道的排序参数值,根据排序参数值的大小来进行数据采集,从而可以更加有针对性地进行数据采集,提高对网页频道进行数据采集的效率。
114.本技术实施例还提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被所述处理器610执行时实施上文所描述的任一种方法的步骤。举例而言,所述程序被所述处理器610执行时实现如下过程:基于网页频道的更新项数目,确定网页频道的排序参数值;获取所述排序参数值大于第一阈值的前m个网页频道;基于获取的所述前m个网页频道,进行数据采集;其中,m为正整数。如此,可以通过可以通过计算网页频道的排序参数值,根据排序参数值的大小来进行数据采集,从而可以更加有针对性地进行数据采集,提高对网页频道进行数据采集的效率。
115.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
116.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
117.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
118.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
119.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
120.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
121.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
122.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
123.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
124.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。