具体实施方式
本发明实施例中为了减少网络资源的浪费,提高信息采集的准确性,提供了一种网页数据信息的定向采集方法,在该方法中通过确定包含被采集网站的网页信息的列表页的当前页面更新率,并根据所述网站的标准更新率,确定针对所述列表页当前信息采集与下一次信息采集的时间间隔,根据该时间间隔进行信息的采集。由于在本发明实施例的上述实现方式中,通过确定列表页中当前的页面更新率,动态的确定信息采集的时间间隔,因此根据确定信息采集的时间间隔,可以在网页刷新时准确的获取到网页的数据信息,并且减少了网络资源的浪费。
下面结合说明书附图,对本发明实施例进行详细说明。
图1为本发明实施例提供的网页数据信息的定向采集过程,该过程包括以下步骤:
S101:根据采集到的列表页对应网页的内容,抽取每个内容所在的内容页的统一资源定位符URL信息,其中所述列表页为用于数据信息采集的网页。
在本发明实施例中列表页为用于数据信息采集的网页。一般针对每个网站进行数据信息采集时,将该网站中初始进行信息采集的每个URL信息作为一个列表页,即将某一网页的URL信息作为初始数据信息采集的列表页。
当进行数据信息采集时,根据采集任务对应的列表页的URL信息,采集该列表页的每个内容。根据列表页的每个内容,抽取每个内容所在内容页的URL信息。例如当该列表页为某网站新闻主页时,在该主页中包含若干条新闻题目信息,其中该新闻题目即为该列表页中的内容,根据每个新闻题目信息,获取每个新闻题目的新闻正文所在的网页的URL,从而达到采集每个新闻题目所在内容页的URL信息的目的,即每个新闻正文所在的网页为该内容所在的内容页。
S102:根据抽取的每个内容页的URL信息,及服务器中保存的已经进行了数据信息采集的每个URL信息对应的标识信息,确定该列表页中未进行数据信息采集的URL信息的数量。
在本发明实施例中确定列表页中未进行数据信息采集的URL信息具体包括:根据抽取的每个内容页的URL信息,确定每个URL信息对应的标识信息,针对确定的每个URL信息对应的标识信息,在服务器保存的已经进行了数据信息采集的每个URL信息对应的标识信息中查找,判断是否存在该确定的标识信息,当判断不存在时,确定该标识信息对应的URL信息为该列表页中未进行数据信息采集的URL信息。
S103:根据确定的所述列表页中未进行数据信息采集的URL信息的数量,及抽取的所述内容页中的URL信息的数量,确定所述列表页当前的页面更新率。
其中,确定所述列表页的页面更新率包括:计算所述列表页中未进行数据信息采集的URL信息的数量,与抽取的所述内容页的URL信息的数量的比值,将所述比值作为确定的所述列表页当前的页面更新率。
S104:根据所述列表页所属网站的标准更新率,确定的所述列表页当前的页面更新率,及当前的信息采集时间间隔,确定针对所述列表页当前信息采集与下一次信息采集的时间间隔。
在本发明实施例中确定针对所述列表页当前数据信息采集与下一次数据信息采集的时间间隔包括:当确定的列表页的当前页面更新率大于所述网站的标准更新率时,缩短当前的数据信息采集时间间隔,将缩短后的时间间隔确定为当前数据信息采集与下一次数据信息采集的时间间隔;当确定的列表页的当前页面更新率等于所述网站的标准更新率时,确定当前数据信息采集与下一次数据信息采集的时间间隔为当前的数据信息采集时间间隔;当确定的列表页的当前页面更新率小于所述网站的标准更新率时,延长当前的数据信息采集时间间隔,将延长后的时间间隔确定为当前数据信息采集与下一次数据信息采集的时间间隔。
S105:在等待该确定的时间间隔后,进行数据信息采集。
在本发明实施例中可以针对网站的重要性对网站进行分级,划分级别的个数可以根据需要确定,网站的重要性越高对应的级别越高。并且每一级别中包含的网站对应的权重值相同,每一级别包含的网站对应的权重值可以为不小于1的数值。网站的重要性越高时,对应的权重值越大。其中网站的重要性可以根据用户的经验进行确定,或根据网站信息的准确程度进行确定,在进行网站信息准确程度的评判时,可以根据用户自身对网站信息的分析确定,或根据相应的匹配算法确定。
上述实施方式中,在针对每个网站进行网页数据信息的定向采集时,每个网站的重要性都是可知的,或者当存在不可知的网站时,可以任意将该网站划分到一个级别中以便后续过程的进行。
在进行网页数据信息采集之前,需要确定全局更新率。该全局更新率,在进行网页数据信息采集的初始阶段设置,可以将该全局更新率设置为任意大于零小于1的数值。当设置了全局更新率后,根据每个网站对应的权重值,可以确定每个网站的标准更新率,其中该标准更新率可以为设置的全局更新率与该网站对应的权重值的积。或者其他的确定方法,主要保证网站重要性越高时,该网站对应的标准更新率越高。
在本发明实施例中在进行网页数据信息的采集时,针对每个网站都可能存在一个或多个采集任务,每个采集任务即为一个列表页,即针对每个采集任务都有对应的一个URL信息。
每个采集任务对应一个列表页,在服务器中可以保存已经进行了数据采集的网页的URL信息对应的唯一标识信息,相同的标识信息对应相同的URL信息。例如可以采用MD5算法,确定每个URL信息对应的标识信息。
根据采集到的列表页对应网页的内容,抽取每个内容所在的内容页的统一资源定位符URL信息时,由于每个URL信息对应一个网页,而不同的网页可能包含不同的内容,因此可以根据每个内容页的URL信息,获取对应的内容数据。例如在网页中可能包含帖子的标题、博客的标题、新闻正文的标题等等内容。不同的内容对应不同的链接,例如当列表页中包含帖子的议题时,根据该议题可以获取该帖子对应的链接,即该帖子的正文所在的内容页,在帖子的议题所在的内容页,即为列表页中的内容所在的内容页,而该内容页的URL信息,即为该列表页中的内容所在内容页的URL信息。
针对每个列表页,由于每个网页的格式基本上固定,因此一般情况下在采集列表页每个内容所在的内容页的URL信息时,可以获取到相同数量的URL信息。例如对于某一论坛主页为列表页时,在该论坛主页中包含的内容-帖子的数量确定,而每个帖子在不同的内容页中。例如在该列表页中可以包含20个帖子,当又有新的帖子出现时,按照更新程度进行排序时,该帖子将在该主页内,相反一些帖子将会被替代,即不包含在该主页内。此时根据该列表页的每个内容进行URL信息的采集时,可以获取每个帖子所在的内容页的URL信息。
因为服务器中保存了已经进行了数据信息采集的内容页的URL信息的标识信息,并且相同的标识信息对应的URL信息相同,因此可以根据采集的每个内容所在内容页的URL信息,确定该列表页中新出现的未进行数据信息采集的内容页URL信息的数量。
例如出现了新增的帖子,当获取了该帖子所在的网页的URL信息后,根据该URL信息,确定该URL信息对应的标识信息,确定该标识信息是否在服务器中保存,当服务器中保存了该URL信息对应的标识信息时,可以认为该帖子在其他的采集任务中已经采集过,即该帖子的数据信息已经被采集过,该URL信息非未进行数据信息采集的URL信息;当该URL信息对应的标识信息,在服务器中不存在时,确定该URL信息为该列表页中新出现的未进行数据信息采集的URL信息。
因此根据上述描述可知,当采集了列表页中每个内容所在的内容页的URL信息后,根据每个URL信息对应的标识信息,及服务器中保存的已经进行了数据信息采集的每个URL信息对应的标识信息,可以确定该列表页中新出现的未进行数据信息采集的URL信息的数量。
当进行第一次数据信息采集时,网站中初始进行数据信息采集的URL信息为该列表页的URL信息,根据该URL信息在对应的网页中抽取每个内容所在的内容页的URL信息。根据抽取的每个内容页的URL信息对应的标识信息,以及服务器中保存的已经进行了数据信息采集的每个URL信息对应的标识信息,将未在该服务器中出现的URL信息对应的标识信息的数量,确定列表页中新出现的未进行数据信息采集的URL信息的数量。
当抽取了每个内容所在的内容页的URL信息,并确定了列表页中新出现的未进行数据信息采集的URL信息的数量,根据每个未进行数据信息采集的URL信息,在对应的网页进行数据信息的采集,并在数据信息采集后,将该URL信息对应的标识信息保存到服务器中,作为已进行了数据信息采集的URL信息对应的标识信息。当下一次根据列表页的每个内容进行数据信息采集时,获取到某一内容所在的内容页的URL信息对应的标识信息,与该服务器中保存的该URL信息对应的标识信息相同时,则认为对该URL信息对应的网页的内容已进行了数据信息的采集。
当采集了列表页中每个内容对应网页的URL信息后,确定了该列表页中新出现的未进行数据信息采集的URL信息的数量,根据确定的所述列表页中新出现的未进行数据信息采集的URL信息的数量,及抽取的所述内容页的URL信息的数量,确定所述列表页当前的页面更新率。确定列表页当前的页面更新率具体包括:计算列表页中新出现的未进行数据采集的URL信息的数量,与抽取的所述内容页的URL信息的数量的商,将该商值作为该列表页当前的页面更新率。
确定了该列表页当前的页面更新率后,由于该列表页当前的页面更新率表示按照当前的数据信息采集时间间隔,对该列表页的内容所在的内容页的URL信息进行抽取时,当前该列表页的内容所在的内容页的URL信息的更新情况。并且由于该列表页所属网站的标准更新率已知,当该列表页当前的页面更新率大于该网站对应的标准更新率时,说明该列表页的内容所在的内容页的URL的信息更新较快,即进行数据信息采集时,该列表页中未进行数据信息采集的URL信息数量较多,因此采用当前的时间间隔进行数据信息采集时,将会造成部分信息的丢失。因此为了保证数据信息采集的准确性,需要将数据信息采集的时间间隔缩短。
在本发明实施例中在缩短该数据信息采集的时间间隔时,可以将当前的数据信息采集时间间隔减去一个固定值,或减去任意值,将减去固定值或任意值后的时间间隔,作为针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔。但在本发明实施例中为了使确定针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔更加准确,可以确定当前的数据信息采集时间间隔与所述网站的标准更新率的积,并确定所述积与所述列表页当前的页面更新率的商,将所述商确定为针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔。
当该列表页当前的页面更新率等于该网站对应的标准更新率时,说明对该列表页的页面更新时间,与当前的数据信息采集时间间隔比较吻合,针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔可以采用当前的数据信息采集时间间隔。
当该列表页当前的页面更新率小于该网站对应的标准更新率时,说明该列表页的页面更新较慢,即进行数据信息采集时可能该列表页的内容所在内容页的URL信息还基本上没进行更新,采用当前的时间间隔进行数据信息采集时,将会造成带宽的浪费,因此为了节省带宽资源,需要将数据信息采集的时间间隔延长。
在本发明实施例中在延长该数据信息采集的时间间隔时,可以将当前的数据信息采集时间间隔加上一个固定值,或加上任意值,将加上固定值或任意值后的时间间隔,作为针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔。但在本发明实施例中为了使确定针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔更加准确,可以确定所述网站的标准更新率与确定的所述列表页当前的页面更新率的差值,将该差值加一后确定与当前的数据信息采集时间间隔的积,将该积确定为针对所述网站当前信息采集与下一次信息采集的时间间隔。
例如,在确定针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔时,可以根据下述公式进行:
上述公式中,iRatioUpdate为确定的所述列表页当前的页面更新率,iRatioi为网站的标准更新率,TCur为当前的数据信息采集时间间隔,TNext为针对所述网站数据当前信息采集与下一次数据信息采集的时间间隔。
本发明上述实施例中针对每个列表页当前的页面更新率,网站的标准更新率,以及当前的数据信息采集时间间隔,确定针对所述网站当前数据信息采集与下一次数据信息采集的时间间隔。因此可以使数据信息采集的时间间隔能够适应列表页中URL信息的更新程度,不会造成信息的漏采,也不会造成带宽资源的浪费,从而使采集的信息更加的准确。
由于在本发明实施例中需要根据列表页中的每个内容,抽取每个内容所在的内容页的URL信息,并且针对每个内容所在的内容页的URL信息,采集该URL对应网页的具体内容数据信息。因此可以将数据信息采集的过程划分为两个采集队列,分别是列表页队列和内容页队列。
其中列表页队列中包括:待采集的每个列表页的URL信息,即所有采集任务的起始网页的URL信息。由于针对每个网站可能存在多个起始URL信息,针对每个URL信息对应的列表页,获取每个该列表页中每个内容所在内容页的URL信息都为一个采集任务。并且由于存在多个列表页,因此列表页队列即为针对每个列表页的采集任务的队列。
针对列表页队列中的每个采集任务,根据该采集任务的起始URL信息,获取该URL信息对应的列表页,根据该列表页中包含的内容,获取每个内容所在的内容页的URL信息。例如列表页为某一网站的新闻主页时,在该网页中包含的内容分别为每个新闻的主题,该新闻的正文所在的网页的URL信息,即为列表页队列采集的内容。而根据该新闻正文的URL信息,在该URL信息对应的网页采集该新闻正文的具体内容,则是内容页队列采集的内容。
在列表页队列中将每个待采集的URL信息进行排队。由于在针对每个采集任务进行数据信息采集的过程中,具体进行数据信息采集的为采集线程。并且由于在本发明实施中将数据信息采集的过程划分为了两个采集队列,因此可以根据数据信息采集对应的划分情况,分配采集线程。将采集线程划分为进行列表页队列采集的采集线程,和进行内容列队列采集的采集线程,其中列表页队列包含待采集的每个列表页的URL信息,即所有的采集任务对应的列表页URL信息以及从多层采集中提取出来的子列表页对应的URL信息。针对列表页的采集为根据列表页中的内容,获取列表页中每个内容页所在的内容页的URL信息。内容页队列包含要采集的每个内容页的URL信息,针对内容页的采集包括:根据每个内容页的URL信息,在对应的网页中获取相应的数据信息。
采集线程可以用于数据信息的采集,由于在列表页队列中,针对每个列表页的采集任务,根据每个列表页对应的URL信息开始,即在列表页队列中存在多个列表页的URL信息。对于内容页队列,也是针对每个网页的URL信息的队列,因此在内容页队列中也存在多个内容页的URL信息。
因此可以根据每个采集队列中排队的URL信息的数量信息,确定分配给每个采集队列的的采集线程的数量。在具体确定分配给每个采集队列的采集线程的数量时,当列表页队列中待采集的URL信息的数量与采集任务总数的比例,大于设定的比例阈值,并且内容页队列中的线程数量不小于内容页队列中所有的URL信息所属的网站的数量时,增加对列表页队列进行采集的采集线程的数量;当列表页队列中排队等待采集的URL信息的数量与采集任务总数的比例,小于设定的比例阈值,并且此时内容页队列中的线程数量小于内容页队列中所有的URL信息所属的网站的数量时,减少对列表页队列进行采集的采集线程的数量,其中采集任务总数为初始进行数据信息采集时加载的所有列表页的个数。
在本发明实施例中,在具体调整列表页队列和内容页队列的采集线程的数量时,可以根据下述公式确定:
nThdNumHub=nThdNumAll-nThdNumCont
其中nThdNumAll为进行数据信息采集的采集线程的总数量,nThdNumCont为分配给内容页队列的进行数据信息采集的采集线程的数量,nThdNumHub为分配给列表页队列的进行数据信息采集的采集线程数量,nSiteNumCont为内容页队列中的所有内容页的URL信息所属的网站的数量,nSiteNumHub为列表页队列中的所有URL信息所属的网站的数量,nQueLenHub为列表页队列中排队等待采集的URL信息的数量。并且在上述公式中,进行数据信息采集的采集线程的总数量nThdNumAll,为分配给列表页队列的进行数据信息采集的采集线程数量nThdNumHub及分配给内容页队列的进行数据信息采集的采集线程数量nThdNumCont之和。λ0为理想状态下,列表页队列中排队等待采集的URL信息的数量与采集任务总数的比例,一般取值为1%;1%,λ为当前列表页队列中排队等待采集的URL信息的数量与采集任务总数的比例。
在上述公式中,当λ不大于λ
0时,并且当分配给内容页队列的进行数据信息采集的采集线程的数量,不小于内容页队列中所有的URL信息所属的网站的数量时,则下一时刻分配给内容页队列的采集线程的数量为
其中α
Thd的取值范围为0到1之间,但不包括0和1。当λ≤λ
0时,并且当分配给内容页队列的进行数据信息采集的采集线程的数量,小于内容页队列中所有的URL信息所属的网站的数量时,则下一时刻分配给内容页队列的采集线程的数量为nThdNum
Cont+β
Thd,其中β
Thd为nSiteNum
Cont-nQueLen
Cont及nQueLen
Hub-1的较小值。当λ>λ
0并且当分配给内容页队列的进行数据信息采集的采集线程的数量,大于内容页队列中所有的URL信息所属的网站的数量时,则下一时刻分配给内容页队列的采集线程的数量为nThdNum
Cont-β
Thd ,其中,β
Thd为nQueLen
Cont-nSiteNum
Cont 及ε
THd*nSiteNum
Hub-nQueLen
Hub的较小值,其中ε
THd的取值范围为1到15之间,但不包括端点。
在本发明的上述实施例中当每个采集队列中排队的URL信息的数量所占的比例较大时,说明此刻进行对应数据信息采集的采集线程的数量不足,则将该采集队列中进行数据信息采集的采集线程增多,具体增多的数量可以根据上述公式确定,从而可以确保该采集队列内的未采集的URL信息可以及时的采集,从而保证采集的数据信息的及时性。
当给每个采集队列重新分配采集线程后,由于采集线程会影响全局更新率,在本发明实施例中可以根据每个采集队列分配的采集线程的数量,以及列表页队列中未进行数据信息的采集任务的数量等,调整该全局更新率。具体调整的方法包括:
αRatio为设置的参数信息,αRatio可以在1和1.5之间取值。在上述公式中,当λ≤λ0,并且重新分配给内容页队列的进行数据信息采集的采集线程的数量,不小于内容页队列中所有的URL信息所属的网站的数量时,则下一时刻的全局更新率为当前的全局更新率与αRatio的比值。当λ≤λ0,并且分配给内容页队列的进行数据信息采集的采集线程的数量,小于内容页队列中所有的URL信息所属的网站的数量时,则下一时刻的全局更新率为当前的全局更新率。当λ>λ0,并且分配给内容页队列的进行数据信息采集的采集线程的数量,大于内容页队列中所有的URL信息所属的网站的数量时,则下一时刻的全局更新率为当前的全局更新率与αRatio的积。
如果全局更新率过低,则表明此时整个采集线程的采集负载过轻,根据每个采集任务信息都能及时进行信息采集,此时可以适当增加进行数据信息采集的采集任务数量,当全局更新率过高时,则表示此时整个采集线程的采集负载过重,此时可以适当减少进行数据信息采集的采集任务数量。
由于在本发明实施例中可以根据整个采集服务的负载情况,动态调整资源分配比例及全局更新率,从而达到对所采集站点的及时有效的数据采集。
图2为本发明实施例提供的网页数据信息的定向采集装置结构示意图,该装置包括:
抽取模块21,用于根据采集到的列表页对应网页的内容,抽取每个内容所在的内容页的统一资源定位符URL信息,其中所述列表页为用于数据信息采集的网页;
第一确定模块22,用于根据抽取的每个内容页的URL信息,及服务器中保存的已经进行了数据信息采集的每个URL信息,确定该列表页中未进行数据信息采集的URL信息的数量;
第二确定模块23,用于根据确定的所述列表页中未进行数据信息采集的URL信息的数量,及抽取的所述内容页的URL信息的数量,确定所述列表页当前的页面更新率;
确定采集模块24,用于根据所述列表页所属网站的标准更新率,确定的所述列表页当前的页面更新率,及当前的信息采集时间间隔,确定针对所述列表页当前数据信息采集与下一次数据信息采集的时间间隔,在等待该确定的时间间隔来后,进行数据信息采集。
所述第一确定模块22包括:
第一确定单元221,用于根据抽取的每个内容页的URL信息,确定每个URL信息对应的标识信息;
判断单元222,用于针对确定的每个URL信息对应的标识信息,在服务器保存的已经进行了数据信息采集的每个URL信息对应的标识信息中查找,判断是否存在该确定的标识信息;
第二确定单元223,用于当判断不存在时,确定该标识信息对应的URL信息为该列表页中未进行数据信息采集的URL信息。
所述装置还包括:
存储模块25,用于根据所述未进行数据信息采集的URL信息,在对应的网页进行数据信息采集后,将所述URL信息对应的标识信息保存在所述服务器中。
所述确定采集模块24具体用于,
根据设置的全局更新率,以及所述网站对应的权重值,确定所述网站的标准更新率。
所述装置还包括:
线程分配模块26,用于将采集线程划分为进行列表页队列采集的采集线程,和进行内容页队列采集的采集线程,其中列表页队列包含待采集的每个列表页的URL信息,针对列表页的采集包括抽取列表页中每个内容所在的内容页的URL信息,内容页队列包含待采集的每个内容页的URL信息,针对内容页的采集包括根据每个内容页的URL信息,获取对应网页中的数据信息,当列表页队列中待采集的URL信息的数量与采集任务总数的比例,大于设定的比例阈值,并且内容页队列中的线程数量不小于内容页队列中所有的URL信息所属的网站的数量时,增加对列表页队列进行采集的采集线程的数量,当列表页队列中排队等待采集的URL信息的数量与采集任务总数的比例,小于设定的比例阈值,且当前内容页队列中的线程数量小于内容页队列中所有的URL信息所属的网站的数量时,减少对列表页队列进行采集的采集线程的数量,其中采集任务总数为初始进行数据信息采集时加载的所有列表页的个数。
所述装置还包括:
调整模块27,用于根据
调整全局更新率,其中α
Ratio为1和1.5之间数值,λ
0为理想状态下,列表页队列中待采集的URL信息的数量与采集任务总数的比例,λ为当前列表页队列中待采集的URL信息的数量与采集任务总数的比例,nThdNum
Cont为分配给内容页队列的采集线程的数量,nSiteNum
Cont为内容页队列中的URL信息所属网站的数量。
所述确定采集模块24具体用于,
当列表页的当前页面更新率大于所述网站的标准更新率时,缩短当前的信息采集时间间隔,将缩短后的时间间隔确定为当前信息采集与下一次信息采集的时间间隔,当列表页的当前页面更新率等于所述网站的标准更新率时,确定当前信息采集与下一次信息采集的时间间隔为当前的信息采集时间间隔,当列表页的当前页面更新率小于所述网站的标准更新率时,延长当前的信息采集时间间隔,将延长后的时间间隔确定为当前信息采集与下一次信息采集的时间间隔。
本发明实施例提供了一种网页数据信息的定向采集方法及装置,该采集方法中确定列表页当前的页面更新率,根据列表页所属网站的标准更新率,确定的所述列表页当前的页面更新率,及当前的信息采集时间间隔,确定针对所述网站当前信息采集与下一次信息采集的时间间隔,在等待该确定的时间间隔后,进行信息采集。由于在本发明实施例的上述实现方式中,通过确定列表页的页面更新率,动态的确定信息采集的时间间隔,因此可以在网页刷新时准确的获取到信息,并且减少了网络资源的浪费。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。