一种文章实时智能抓取系统和方法技术方案

技术编号:7287463 阅读:309 留言:0更新日期:2012-04-22 01:42
一种文章实时智能抓取系统,包括实时抓取模块、网页抽取系统、文档近似排重模块、文档自动分类模块和文章发布模块。所述实时抓取模块还包括线上运行的7个模块:任务提取模块、任务解析模块、任务抓取时间范围检验模块、任务抓取时间间隔检验模块、任务调度模块、任务下载模块、任务抓取频率调整模块;还包括线下运行的3个模块:任务抓取时间范围发现模块、任务抓取时间间隔发现模块、免费代理收集和验证模块。

【技术实现步骤摘要】

本专利技术涉及互联网技术中抓取技术、web挖掘技术、信息抽取技术、自然语言处理
;可以应用于需要大规模精准、实时地抓取文章的门户网站、搜索引擎网站等互联网领域。
技术介绍
互联网门户类网站每天都有大量的文章转载需求,并且对文章的质量要求很高。 现有很多抓取系统可以满足这个需求,但是它们都困扰于下面三个问题1)采用机器自动生成抽取包装器技术的抓取系统可以大量抓取文章,但是无法做到文章的精准抽取,抓取文章的可用性低;2)采用人工生成抽取包装器技术的抓取系统文章抽取结果精准,但是要对互联网上千个网站进行抽取包装器的生成和更新维护工作,普通垂直爬虫无法很好担负这一工作,只能依赖大量的人力参与;3)安全、高效的实时抓取技术。在要求高实时性抓取的时候,需要对抓取网站服务器频繁的发起链接和下载请求,这将会给对方服务器造成很大的压力,进而会导致对方采用封禁策略如拒绝访问等来保证服务器正常工作,这将导致抓取失败。同时高实时的抓取需求,非常耗费网络、服务器等硬件资源,导致成本上升。以下为本专利技术所涉及的一些关键技术及技术术语解释。抽取包装器网页信息抽取是信息抽取中的一类,网页信息抽取的包装器生成技术目前发展成为一个较为独立的领域。包装器是由一系列抽取规则以及应用这些规则的计算机代码组成的,专门从特定信息源中抽取需要的信息并返回结果的程序;基于同站学习和自动规则生成的文章自动抽取算法本专利技术包含的一个包装器自动生成算法,可以精准智能的从网页中抽取出文章信息;同站学习按网站为单位,收集一个网站足够量的网页,一起进行机器统计学习, 进而从中生成需要的规则;爬虫(或者抓取爬虫)抓取系统中单独指负责网页下载的模块;本系统研发的抽取包装器包括两个库Style树或者路径库Style的集合库。Style指的是某个DOM节点在DOM树中进行节点上寻,直到到 body节点,构建出的这样一条路径及其权重信息。在库中,路径都以网站为单位组织,同路径合并成一条,并记录频率作为权重;模式库此处所谓模式包括1) 一个是网页抽取系统中分段后每一段的如下特征码模式=md5((内容text/img) +段落 tag 前向遍历序列+site name) +value其中value是权重信息,也即模式的出现次数;2)还有一个是对这些段进行统计学习后生成的自动正则模式=正则。代理技术代理技术是指代理服务器接收客户请求后会检查验证其合法性,如其合法,代理服务器像一台客户机一样取回所需的信息再转发给客户;实时抓取强调抓取的时效性的一种抓取技术。目标是抓取源站更新内容后能够实时抓取到。
技术实现思路
本专利技术较好的解决了上述问题。根据本专利技术的文章实时智能抓取系统,包括实时抓取模块、网页抽取系统、文档近似排重模块、文档自动分类模块和文章发布模块。其中所述实时抓取模块包括如下线上运行子模块任务提取模块,从任务(job)集合中轮流提取一个job ;任务解析模块,对每一个任务(job)进行解析,解析结果将会形成一些属性和规则;任务抓取时间范围检验模块,查询任务的时间范围参数,如果时间范围不包含当前时间,将不抓取,跳过本job,否则,进行抓取时间间隔检验;任务抓取时间间隔检验模块,查询任务的抓取时间间隔,如果时间间隔指定下一次抓取时间大于当前,则将不抓取,跳过本job,否则,进行任务抓取;任务调度模块,根据任务解析模块的job其它属性进行job调度,调度时候会判断,如果这个job以往已经存在,则不分发,仍然采用本地服务器来抓取;否则,选择服务器群中现jobs数目较少的一台服务器,以实现抓取任务的均衡,从而优化总体的抓取速度; 同时考虑尽量避免一台服务器上同网站job太多,以防止单台服务器对单个网站抓取压力太大;任务下载模块,进行任务的具体下载,去代理库中取适当数目的代理,一般是5 个;如果没有代理可取,则采用非代理抓取;同时将无代理和上述5个代理合并,形成代理集合;根据解析得到的任务参数,从代理集合中随机选择一个代理,进行任务的本轮下载;任务抓取频率调整模块,根据job的抓取间隔基数,如果本轮抓取发现更新,则随机减少下一轮次抓取时间间隔;如果没有发现更新,则随机放大下一轮次的抓取间隔;但是保证时间间隔是job的抓取间隔基数的倍数范围内;所述实时抓取模块还包括如下线下运行子模块任务抓取时间范围发现模块,执行历史抓取日志智能分析工作,从中分析出每一个任务(job)的时间范围;任务抓取时间间隔发现模块,读入昨天的抓取日志,分析每一个job的一天所有轮次的抓取情况,从中分析出每一个job的更新情况;如果发现job的当前间隔基数保证了 50%以上轮次可以抓取到更新,则不调整;否则适当放大当前间隔基数,以降低无谓抓取请求;5免费代理收集和验证模块,从互联网免费代理分享网站下载当天的免费代理集合,对这些免费代理进行验证;随机选择历史抓取链接形成验证ur 1集合,使用每一个代理来执行若干次的url抓取,剔除掉不能成功抓取或者抓取速度太慢的代理,留下成功率高同时速度快的代理,形成当天的代理库,以为线上抓取提供代理支持。本专利技术还提供了一种文章实时智能抓取方法,所述方法包括实时抓取步骤、网页抽取步骤、文档近似排重步骤、文章自动分类步骤和文章发布步骤;所述实时抓取步骤包括线上和线下运行子步骤,其中所述线上运行子步骤包括步骤1,从任务(job)集合中轮流提取一个job ;步骤2,job解析,对每一个job进行解析,解析结果将会形成一些属性和规则;步骤3,时间范围判定,查询任务的时间范围参数,如果时间范围不包含当前时间, 将不抓取,返回步骤1,否则进入下一步骤;步骤4,时间间隔判定,查询任务的抓取时间间隔,如果时间间隔指定下一次抓取时间大于当前,则将不抓取,返回步骤1,否则进入下一步骤;步骤5,job调度,根据任务解析模块的job其它属性进行job调度,调度时候会判断,如果这个job以往已经存在,则不分发,仍然采用本地服务器来抓取;否则,选择服务器群中现jobs数目较少的一台服务器,以实现抓取任务的均衡,从而优化总体的抓取速度; 同时考虑尽量避免一台服务器上同网站job太多,以防止单台服务器对单个网站抓取压力太大;步骤6,任务下载,去代理库中取适当数目的代理,一般是5个;如果没有代理可取,则采用非代理抓取;同时将无代理和上述5个代理合并,形成代理集合;根据解析得到的任务参数,从代理集合中随机选择一个代理,进行任务的本轮下载;步骤7,抓取频率调整,根据job的抓取间隔基数,如果本轮抓取发现更新,则随机减少下一轮次抓取时间间隔;如果没有发现更新,则随机放大下一轮次的抓取间隔;但是保证时间间隔是job的抓取间隔基数的倍数范围内;频率调整完成后,返回步骤 1,重复执行整个流程;所述实时抓取步骤还包括如下线下运行子步骤步骤1,分析日志发现时间范围,执行历史抓取日志智能分析工作,从中分析出每一个任务(job)的时间范围;步骤2,分析日志发现新时间间隔,读入昨天的抓取日志,分析每一个job的一天所有轮次的抓取情况,从中分析出每一个job的更新情况;如果发现job的当前间隔基数保证了 50%以上轮次可以抓取到更新,则不调整;否则适当放大当前间隔基数,以降低无谓抓取请求;步骤3,免费代理搜集和验证,从互联网免费代理本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:吴华鹏曾明厉锟陈大伟
申请(专利权)人:凤凰在线北京信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术