法律状态公告日
法律状态信息
法律状态
2018-05-22
授权
授权
2014-12-31
实质审查的生效 IPC(主分类):G06F17/30 申请日:20140806
实质审查的生效
2014-12-03
公开
公开
技术领域
本发明涉及计算机数据处理领域,具体涉及新闻列表页判断方法及筛 选新闻列表页的方法。
背景技术
互联网是提供新闻信息的重要渠道,社会公众和企业单位都需要依赖 互联网来获取自身关注的新闻信息,而互联网中的网站类型比较繁杂,例 如一些综合性媒体网站,除新闻网页以外还存在大量其他内容的网页,用 户在搜索新闻时通常需要耗费大量成本。
目前有一些新闻采集工具,可以在用户指定的网站中自动搜索新闻页 面,并将所有新闻页面采集下来,再寻找其中用户关注的新闻内容,此类 新闻采集工具在采集数据时,由于采集目标比较模糊,通常会对大量非新 闻页面进行判断,甚至受到网站链接的影响将采集范围扩展到了非用户指 定的网站中,从而使采集数据的效率很低。如果新闻采集工具可以缩小采 集数据的范围,则将提高数据采集的效率。
发明内容
本发明的目的是提供一种新闻列表页筛选方法筛选出新闻列表页,新 闻采集工具可以将新闻列表页作为采集目标,从而提高新闻采集工具的数 据采集效率。
本发明提供一种新闻列表页判断方法,包括:
步骤(1),获取网页,判断所述网页是否为新闻网页,
如果所述网页不是新闻网页,则在所述网页中采集子网页,并对所述 子网页重新执行所述步骤(1);
如果所述网页是新闻网页,则判断所述网页的父网页是否为新闻网 页,如果所述父网页不是新闻网页,则记录所述网页与所述父网页的关联 信息;
步骤(2),根据所述关联信息判断出新闻列表页。
其中,所述步骤(1)中在所述网页中采集子网页包括:
记录采集到的子网页的URL信息;
如果子网页的URL信息与所述记录的URL信息不相同,则采集所述 子网页。
其中,所述步骤(1)中在所述网页中采集子网页包括:
获取所述网页中的链接信息,如果所述链接信息对应的子网页的域名 是所述网页的子域名,或者所述链接信息对应的子网页的域名与所述网页 的域名相同,则采集所述子网页。
其中,所述步骤(1)中在所述网页中采集子网页包括:
如果所述子网页的URL信息表示的深度值小于预设深度阀值,则采 集所述子网页。
其中,所述步骤(1)中判断所述网页或所述父网页是否为新闻网页 包括:
根据第一正则表达式、第二正则表达式、锚文本长度阀值和网页内容 中是否包含时间信,将所述网页或所述父网页判定为新闻网页或非新闻网 页,其中所述第一正则表达式是网页URL的正则表达式,所述第二正则表 达式是关注频道内网页内容的正则表达式。
其中,所述步骤(1)中记录所述网页与所述父网页的关联信息包括:
将所述父网页的深度信息、URL信息、以及所述父网页链出的子网页 的URL信息写入文件。
本发明提供一种筛选新闻列表页的方法,包括:
步骤(1),获取多个URL放入待采集队列中;
步骤(2),从所述待采队列中取出URL作为起始页采集其中的网页;
步骤(3),获取采集到的的网页,判断所述网页是否为新闻网页,
如果所述网页不是新闻网页,则将所述网页中的子网页的URL加入 所述待采集队列中;
如果所述网页是新闻网页,则判断所述网页的父网页是否为新闻网 页,如果所述父网页不是新闻网页,则记录所述网页与所述父网页的关联 信息;
步骤(4),判断待采集队列是否为空,如果待采集队列为空且所有采 集到的网页都已判断完成,则执行步骤(5);否则执行步骤(2);
步骤(5),对记录的关联信息进行挖掘,筛选出新闻列表页。
其中,所述步骤(5)中对记录的关联信息进行挖掘包括:
读取记录的关联信息,放入键值结构体中,所述键值结构体中的键为 父网页的网页URL信息,值为一个统计结构体,包括每个父网页链出的 新闻网页总数量;
根据所述键值结构体筛选出新闻列表页。
进一步地,所述方法还包括:
步骤(6)将符合任意以下条件的新闻列表页判定为高优先级的新闻 列表页:
条件1:链出的发布时间在N天以内的新闻个数大于设定阈值的新闻 列表页;
条件2:链出的N天以内的新闻占全部链出新闻的比重不小于预设比 例值的新闻列表页;
将其他新闻列表页被判定为低优先级的新闻列表页。
进一步地,所述方法还包括:
步骤(7),对相同级别的新闻列表页进行排序::
首先根据同级别的新闻列表页链出的发布时间在N天以内的新闻个 数进行排序;
其次根据同级别的新闻列表页的深度信息进行排序;
再其次根据同级别的新闻列表页链出的新闻网页总数量进行排序。
本发明提供的新闻列表页筛选方法及筛选新闻列表页的方法,通过对 网页内容的判断,以及对网页关系的记录,筛选出了网站中的新闻列表页, 为新闻采集工作提供了精确的采集范围,提高了新闻采集的效率。
附图说明
图1是本发明的一个实施例的筛选新闻列表页的方法流程图;
图2是本发明的一个实施例的新闻列表页判断方法的流程图;
图3是本发明的一个实施例的新闻列表页挖掘算法流程图;
图4是某网站的频道列表示意图;
图5是某网站社会频道新闻下的新闻网页特征示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。此处所描述的具 体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是, 为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
在阐述本发明的各实施例之前,首先对所涉及的相关概念进行说明:
“新闻列表页”是指:页面上主体内容为带链接的新闻标题(标题下 方可以有简短的摘要)或者新闻图片。
“频道”是指:新闻网站导航栏中的每一项。例如图4所示的某网站 导航栏中的每一项视为一个频道。
父亲页(又称父网页)以及子网页:是指具有网络链接关系的两个网 页,例如网页A链出网页a,则对于两个网页而言,A称为父网页(或称 父亲页),a称为子网页。
根据本发明的一个实施例,提供了一种筛选新闻列表页的方法,如图 1所示,该方法包括如下步骤:
步骤1,人工配置需要进行新闻列表页发现的新闻网站信息,包括新 闻网站的入口地址、新闻URL的正则表达式(第一正则表达式)、关注新 闻的频道判定正则表达式(第二正则表达式)。
以某新闻网站为例,该网站的入口地址为http://news.sina.com.cn/,该网 站中有若干新闻网页,例如:
http://news.sina.com.cn/s/2014-04-28/112330024988.shtml、
http://news.sina.com.cn/s/2014-04-28/050630022608.shtml等。
本领域技术人员通过对同一个网站的新闻网页的观察和总结可以发现, 同一网站中的任何新闻网页的URL信息可以用统一的正则表达式表达,例 如对于上述两个新闻网页对应的网站,根据该网站中的多个新闻网页的 URL信息可以得知,该网站中的新闻网页的URL符合下列正则表达式: http://news\.sina\.com\.cn[/\w+/]+/\d{4}-\d{2}-\d{2}/\d+\.shtml。所以,这种 正则表达式可以作为判断一个网页是否是新闻网页的一个条件,即根据网 页的URL是否符合预先设定的表达网页URL的正则表达式(为了便于描 述,后续称此正则表达式为第一正则表达式)判断该网页是否为新闻网页。
上例中的新闻网站包括多个频道,图4是某网站的频道列表示意图, 如图4所示,该网站中带有“社会”、“体育”、“经济”等频道。
图5是该网站社会频道中的新闻网页示意图,如图5所示,
该网页中的新闻标题上方带有一段文本:
“新闻中心>社会万象>”。
这一段文本对应的网页源代码的正则表达式为
<diV class=″blkBreadcrumbLink"data-sudaclick=″blkChannel_path″><a href="http://news.sina.com.cn/″>新闻中心</a> ;>; ;<a href="http://news.sina.com.cn/society/″>社会万象</a> ;>; 。
所以,根据以上分析可以得知只有源代码符合类似上述的表达特定网页 内容的正则表达式(为了便于描述,后续称此正则表达式为第二正则表达 式)的网页才是特定频道下的新闻网页。对新闻网页内容的判断条件是在新 闻URL判断的基础上,进一步明确了新闻网页的所属频道,这种判断可以 筛选出某一特定内容的网页,并且只针对特定内容的网页进行后续操作, 明确了处理的范围。
以上配置是后续步骤中对网页进行判断的条件,该配置存储在预先设 计的数据库表中,一个库表中可以保存多条配置。并且,因为大型新闻网 站的新闻列表页是动态更新的,所以在一个实施例中,基于本方法实现的 程序周期性地读取这些配置来做新闻列表页的挖掘操作。
步骤2,蔓延采集的初始化工作。根据一个实施例,包括:
初始化待采集URL队列;在一个实施例中,待采集的URL队列使用 一个长队列管理方式,具体来说,每个加入队列的URL首先被放入一个 大小为8046个字节大小的缓存中,若缓存写满则将缓存内容写入到磁盘 上。同时使用宏来控制URL入队列和出队列是否写日志。
初始化任务查重对象;在一个实施例中,使用布隆过滤器来构造查重 对象,且每个任务都有自己独立的查重对象。每个URL被加入待采集队 列时,同时也会被加入到所属任务的查重对象中,这里所述的URL,包括 用户人工配置的入口地址,同时也包括后续步骤中系统根据判定条件采集 到的子网页的地址。如果一个URL已经存在于查重对象中,也就是该URL 已经被记录,则说明它已经被采集过或者已经放入待采集队列,故不需要 再次放入待采集队列。使用此机制来避免URL被重复采集,压减蔓延采 集的规模,提高蔓延采集的效率。
步骤3,读取任务配置,获取最多N条任务的入口URL并放入待采 集队列中。N的取值取决于蔓延采集机器的硬件配置,例如CPU的个数、 频率及内存大小,N的取值通常不超过20。
步骤4,从待采集队列中取出最多M个URL放入并发采集器中。M 的取值取决于并发采集器并发的Socket连接数。为了充分发挥并发采集器 的性能同时兼顾故障恢复成本,M的取值为并发Socket连接数的2倍。
步骤5,轮询并发采集器返回的采集结果,并处理每个采集结果。在 本步骤中,对目标网页进行判断,并记录下符合设定条件的网页之间的关 联关系,为后续步骤提供数据挖掘的基础。关于该步骤的具体内容,将在 下文参照附图2进行详细描述。
步骤6,每处理完一个采集结果,都要判定采集过程是否应该结束。 当待采集队列为空,且并发采集器中没有未处理的URL时,则采集工作 结束,转入到步骤7进行后处理;如果在处理过程中,并发采集器根据步 骤5中的判定条件采集到了新的网页则转入步骤5,继续处理并发采集器 返回的采集结果。
步骤7,蔓延采集过程完成后,处理蔓延过程得到的结果,并从中挖 掘出每个任务的新闻列表页。关于该步骤的详细说明,将在下文参照附图 3进行描述。
下面结合图2对上述步骤5的处理过程进行介绍,该方法包括:
步骤51,从并发采集器获得一个采集到的网页后,首先要判定网页是 否采集成功。如果采集成功,转步骤52;否则,转步骤53。
步骤52,如果网页采集成功,则将此URL加入所属任务的查重对象 中。
步骤53,如果网页采集失败,则判定采集失败的次数是否已经超过设 置的最大失败次数(例如取值为3次)。若未超过,则转入步骤54;否则, 转入步骤55。
步骤54,若网页是因为超时导致的采集失败,则将网页URL重新放 入待采集队列。因为采集网页时可能受到通信条件的影响导致访问超时, 最终导致网页失败,对于这种情况应当重新链接访问该网页进行采集。
步骤55,将采集失败的URL写入到失败文件,同时记录采集失败原 因。如果重新采集多次仍然失败,那么失败原因很可能不是受到通信条件 的影响而是其他特殊原因,此时记录失败原因以便相关人员进行分析。
步骤56,判断采集成功的网页是否为新闻网页,在一个实施例中,判 定条件如下:
条件1,网页的URL信息。判断此网页URL信息是否满足所述第一 正则表达式;
条件2,网页的锚文本。锚文本又称锚文本链接,是链接的一种形式。 和超链接类似,超链接的代码是锚文本,把关键词做一个链接,指向别的 网页,这种形式的链接称为锚文本。如上文所述新闻网页通常是网站的子 网页,所以新闻网页通常具有锚文本,并且新闻网页通常是以新闻标题或 者新闻核心内容作为锚文本。所以判断一个网页是否是新闻网页,可以根 据该网页的锚文本的字符长度进行判断,例如设定一个锚文本长度阀值, 一般的新闻标题或核心内容通常不会是一个词语或者短语,所以可以将锚 文本长度阀值设为5,如果某网页的锚文本长度大于5,则该网页是新闻 网页。
条件3,网页内容中的时间信息。新闻网页中通常会有新闻的发布时 间,时间信息可能在新闻标题的下方或者新闻正文的下方,那么新闻网页 的源代码中就带有时间信息,可以将网页的源代码中是否带有时间信息作 为条件,或者说根据是否可以从该网页的源代码中抽取出时间信息作为条 件判断该网页是否是一个新闻网页,如果某网页的内容中带有时间信息, 则该网页是新闻网页。
当网页同时满足以上三个条件时被判定为新闻网页,否则被判定为非 新闻网页。若此网页为新闻网页,则转入步骤57;否则,转入步骤511。
步骤57-510是针对一个新闻网页的操作。
步骤57,进一步判断新闻网页是否为关注频道内的新闻网页。判定条 件如下:
条件4,网页的HTML源码信息。判断该信息是否符合所属任务的所 述第二正则表达式,如果符合则该网页是关注频道内的新闻网页。
当网页同时满足以上条件时被判定为频道内的新闻网页,否则被判定 为非频道内的新闻页;如果此网页是频道内的新闻页,则转入步骤58;否 则不做任何处理。因为条件4是一个强规则,在一个实施例中,在所述第 二正则表达式配置正确的前提下,使用条件4配合条件1、2、3即可确定 此网页为关注频道内的新闻页。
步骤58,将新闻页的相关信息写入到文本文件news.txt,写入内容的 格式如下:
采集完成时间\t网页URL信息\t新闻页的深度\t新闻发布时间\t锚文 本(即新闻标题)。
步骤59,判断步骤58中的新闻网页的父亲页是否为新闻页,若不是, 则转入步骤510;若是,则不做任何处理。因为如果一个网页是新闻网页, 那么它的父亲页很可能就是一个新闻列表页,所以要进一步判断其父亲页 的内容,该新闻网页称为其父亲页的子网页。
步骤510,将新闻页与其父亲页的父子关系写入到文本文件link.txt中, 写入内容的格式如下:
父亲页的深度\t新闻页URL信息\t父亲页URL信息。
至此,该分支的处理流程结束,上述步骤是针对一个新闻网页的处理 步骤,即在确认了一个网页是新闻网页后,判断其父亲页的内容,如果父 亲页不是新闻网页,那么父亲页很可能就是一个新闻列表页,在此记录该 网页与其父亲页的关联信息,为后续进一步判断做准备。
步骤511-513是针对一个非新闻网页的操作。
步骤511,判断网页链接的域名是否与所属任务的入口地址域名相同 或为其子域名,如果是,则转入步骤512,否则不做任何处理。
步骤512,抽取网页上的所有链接以及链接的锚文本。此步骤是为了 在该页面上采集子页面。
在一个实施例中,链接和锚文本的抽取算法如下:提取HTML源码中 所有非注释部分的<a>标签的href属性信息作为链接,<a>标签的开始和 结束之间的文本作为锚文本。
步骤513,对步骤512获得的所有链接逐个处理,仅将满足条件的链 接加入待采集队列,包括如下步骤:
步骤513(1),判断抽取出的链接的深度是否超过最大蔓延深度,如果 不超过,则转入步骤513(2)。由于大型网站的子页面层次较多,并且某 些网页上的链接可能是一种无尽的循环,为了避免陷入循环陷阱,在一个 实施例中,对子网页的URL信息表示的深度值进行判断,如果子网页的 URL信息表示的深度值小于预设深度阀值,则继续执行后续步骤,否则将 不进行处理。URL信息表示的深度值是指子网页对于起始页的链接深度, 对采集深度加以限制可以控制采集的范围,提高采集效率。
步骤513(2),判断抽取出的链接的域名是否与所属任务的入口地址域 名相同或为其子域名,如果是,则转入步骤513(3)。由于网页中可能包 含指向其他网站的链接,如果采集子网页时延伸到了其他网站则大大增加 了采集的范围,为了控制采集子网页的范围而加入这一判断条件,这一操 作同样可以保证采集的范围,提高采集效率。
步骤513(3),判断抽取出的链接是否在所属任务的查重对象中,如果 不在,则转入步骤513(4)。此判定条件是为了避免一个URL被重复加入 待采集队列从而导致重复采集。
以上三个判断条件是为采集工作提供的筛选条件,此三个条件相互之 间不存在数据上的联系,所以其先后执行顺序可以改变,并且也可以执行 其中的至少一个。
步骤513(4),将抽取出的链接加入待采集队列,同时加入其所属任务 的查重队列。至此,对一个非新闻网页的处理流程结束,即如果一个网页 不是新闻网页,则在该网页中根据上述条件采集子网页,然后将采集到的 子网页作为新的网页重新进行判断。
利用本实施例提供的新闻列表页判断方法,可以针对某一个给定的目 标网页执行上述步骤,然后根据该目标网页生成的关联关系记录,判断目 标网页是否为新闻列表页。
进一步的,根据本发明的一个实施例,提供了一种新闻列表页挖掘方 法,下面结合图3对上述步骤7的处理过程进行介绍,该方法包括如下步 骤:
步骤71,从news.txt中读取每个任务蔓延出的所有新闻URL,放入第 一键值结构体中,其中,键为任务的唯一ID号,值为存储新闻信息的结构 体,包括新闻的URL、深度、发布时间和锚文本。
步骤72,从link.txt中读取每个任务蔓延出的所有新闻URL的父子关 系,放入第二键值结构体中,其中键为父亲URL,值为一个统计结构体, 包括此父亲URL链出的新闻页总个数以及链出的发布时间在N天以内(距 离当前日期若干天以内)的新闻页的个数。
步骤73,依次处理每个任务的结构体对象。步骤71-73是通过处理文 本文件news.txt和link.txt的内容,寻找到二者数据上的联系,来筛选出每 个任务的新闻列表页。
由于一个网页通常包含多个子网页,所以被记录与某一网页有链接关 系的子网页的数目也可能是多个。例如网页A不是新闻网页,网页A的 子网页a是新闻网页、子网页b也是新闻网页,那么链接关系记录中应包 括两条记录:1)A链接a、2)A链接b。根据上述的判定条件和记录条件 可知,链接关系记录中的内容实际含义是:一个非新闻网页A有两个子新 闻网页a和b。通常情况下新闻列表页链接的子新闻网页的数量较多,所 以可以根据连接关系记录中记录的数量来判断网页A是否是一个新闻列 表页。在一个实施例中,设定一个链接关系记录阀值(例如阀值为10), 如果与第一网页A具有链接关系的子网页大于10个,则将第一网页A判 定为新闻列表页。
由于所述的两个文件以及它们之间的关系实际上体现了每个非新闻 页面链接出的新闻子网页的数量,所以当父亲URL链出新闻总数大于设 定阈值(例如取值为10)时,就可以判定该父亲页就是新闻列表页。
进一步的,在一个实施例中,当父亲URL链出的发布时间在N天(建 议取值1)以内的新闻个数大于设定阈值(例如取值为5)或者N天以内 的新闻占全部新闻的比重不小于预设比例值(例如取值为0.5)时,被判 定为高优先级的新闻列表页;其他列表页被判定为低优先级的新闻列表 页。这样则可以为新闻采集器提供采集频率的参考,因为高优先级的新闻 列表页表示该页面下的新闻更新速度较快,而低优先级的新闻列表页下的 新闻更新速度较慢,用户可以根据本操作的判定结果对新闻采集器进行区 别设置,例如对于高频率新闻列表页,需要每天进行新闻采集,而低频率 新闻列表页可以间隔较长时间采集一次。
进一步的,在一个实施例中,如果新闻列表页A的优先级在新闻列表 页B之后,则用A<B表示它们的排序关系,同理还有如A>B、A=B的关 系。本实施例对于优先级相同的新闻列表页(即对于A=B的情况)还做 出如下判断:
其中,层深是指网页在某网站中的深度,链出的新闻总数是指某新闻 列表页的子新闻网页的数量。此算法针对优先级相同的新闻列表页做出进 一步判断,进一步对其优先级进行排序,此算法实际是优先考虑同级别的 新闻列表页链出的发布时间在N天以内的新闻个数,如果仍无法分出高低 等级则再考虑新闻列表页的深度,如果仍无法分出高低等级则再考虑新闻 列表页链出的新闻网页总数量,如果仍无法分出高低等级,则最终认定新 闻列表页的优先级相等。
上述实施例提供了发现新闻列表页的方法,利用上述实施例找到新闻列 表页之后,现有的新闻采集器可以直接将新闻列表页作为起始页采集其中的 链接,从而采集到具体的新闻内容。由于新闻列表页的子网页都是新闻页, 所以新闻采集器的采集目标非常明确,采集的范围被有效地缩小,使得新闻 采集工作的效率大幅提高。
最后,上述的实施例仅用来说明本发明,它不应该理解为是对本发明的 保护范围进行任何限制。而且,本领域的技术人员可以明白,在不脱离上述 实施例精神和原理下,对上述实施例所进行的各种等效变化、变型以及在文 中没有描述的各种改进均在本专利的保护范围之内。
机译: 利用以独占方式管理为单个缓存的空闲缓存列表以及第一页和第二页缓存的系统和方法
机译: 索引页的地址列表生成方法,例如浏览器,要求提供描述文档地址列表的标识符
机译: 一种刷新新闻列表的方法及装置