英语原文共 19 页,剩余内容已隐藏,支付完成后下载完整资料
一个有效并高效的优化爬行过程的文本内容提取器
总结
传统的web爬虫爬行过程中仅使用超链接信息。然而,集中爬虫在下载网页之前只下载相关网页的给定了主题利用词的信息,但是Web页面也包含额外的信息,而这些信息在爬行过程是非常有用的。我们已经开发出一种叫做iCrawler(智能爬虫)的爬虫程序 ,它的骨干,Web内容提取器,自动将网页内容的分成七种不同的部分: 菜单、链接、主要文本、标题、摘要、额外必要信息、以及网页中不必要的文本块。
提取信息的过程包括两个步骤,它们通过互相调用来获取信息块。第一步使用决策树学习参考算法学习HTML标记块。因为被无数的信息来源引导,爬虫变得相当有效,在块提取的实验中达到了一个相对高的精度96.37%,标签和块之间的映射在第一步为iCrawler提供了相当多的时间和存储效率。在第二步中,爬行器使用字符串匹配函数提取内容块。这些函数中的标签和块之间的映射在第一步为iCrawler提供了相当多的时间和存储效率。更具体地说,iCrawler执行第二步速度是执行第一步的14倍。此外,与通过经典HTML剥离获得文本相比,iCrawler显著降低了57.10%存储成本。
1简介
爬虫是一个计算机程序,能够检索网页,然后解析HTML标记和检索页面的内容,从这些标记提取新的超链接并且能存储特定的HTML内容用于搜索、网页分类、数据和信息提取。一个经典的爬虫从Web域中下载所有可访问Web页面,然而,这就可能会导致一些问题(即与资源、空间、时间和网络带宽问题)。为了避免这些问题,人们提出了集中精力爬虫。这些爬虫下载特定主题的网页并通过把超链接信息词作为学习资料,通过这样的方式,最大限度地减少所需的资源量。然而,所有类型的爬虫往往只注重在超链接信息和链接关系,相反,Web页面的HTML中包含的结构可用于进一步的信息爬行,存储和索引过程。为了受益于这些额外的信息,我们已经开发了一个智能爬虫(icrawler),它有三个主要功能:
- 自动并有效地提取必要的区块,包括标题、摘要、主要文本等内容;
- 自动确定爬行深度;
- 用块来快速发现网页中的新超链接。
网络是信息检索、自然语言处理、数据挖掘的宝贵来源。研究人员大多倾向于把网页作为一种可替代的测试集,特别是在限制测试集合的语言。而且他们更喜欢对网上报纸的研究。爬虫能够收集包含HTML标签和不同来源的内容文本。然后,这些HTML标签可以通过使用正则表达式的文本过滤方法除去。然而,这些过滤后的文本可能包含嘈杂的数据,比如广告,横幅,菜单和链接等,这些数据会对处理文本信息和存储这些文本产生不利影响。例如,乌尊等人开发的一个基于域名的爬虫,从发表在土耳其报纸Milliyet(HTTP:/ / www.milliyet.com.TR)上的1998年到2008年的新闻中下载文章。他们采用了一种基于theseweb正则表达式的字符串匹配模式来消除网页噪声。他们从2003年到2007年之间的网页中发现了下面的文本的模式。
lt; ! _ _print:start _ _ gt; (.*?)lt; ! _ _print:finish _ _ gt;
然而,它是没有注意到任何评论标记信息和其他年份搜索性能对它产生的负面影响。前文本模式是一个以lt;!-标签开始和以--gt;标签结束的HTML标签。这种模式能够匹配用于注释的开始标签与结束标签。网络浏览器不显示这些注释标签之间的内容,因为这些注释标签只是用来说明哪些是网页中可用于提取的部分,然而,这种模式的信息提取并不可靠。HTML标签命名和层次的多样性使得提取信息内容很困难。此外,准备临时的正则表达式模式是很麻烦的。为了自动进行模式提取,icrawler提出了一种新的学习模型。首先,这个模型发现模式,利用决策树学习作为一个适当的机器学习方法将模式转为规则。然后,这些规则被用来从网页中有效地提取所需的信息。换句话说,第一阶段以人的方式学习,第二阶段使用学习模式。
爬虫从网页中提取超链接,并收集这些超链接放在等待队列中,在这个过程中,爬虫检查这些超链接是否已经在等待队列中。这样的队列中搜索是非常耗时的。为了缩短搜索时间,修改深度参数是一个简单的和通用的解决方案。深度参数表示从根网页的链接深度。以Apache Nutch为例,下文的命令行用来设置深度参数。
bin/nutch crawl urls http://bilgmuh.nku.edu.tr/ – depth 3
此参数的值可能因不同的网站而异。此外,用户可以在手动选择此参数。icrawler通过检查是否存在文本来自动检测一个网站的深度。正文和icrawler其他输出将在3.1节讨论。
在网页中,超链接可以分为静态和动态两个组。静态超链接(网页中的菜单)通常很长时间不改变,但是,当一个新的网页被添加到一个网站时动态超链接(在本文中称为链接)会改变。在新的链接更新队列中,爬虫会把所有静态和动态链接考虑到。因此,用不必要的检查增加了爬行时间。真正简易聚合(RSS)文件可作为本课题的一个简单的解决方案。RSS是一个用于在网站上发布新超链接的家庭的提要格式,然而,RSS文件不是所有的网站都能产生的。icrawler通过消除网页中菜单自动确定新的链接,因为不必检查多余的超链接,花费的时间明显减少。
下一节介绍相关工作和我们的方法。第三部分介绍设计对icrawler及其特色。第四节介绍了问题的细节利用规则提取内容。第五节是专门为特征选择,数据集,
决策树学习和度量。第六部分涵盖了决策树学习的结果和icrawler效率。最后一节提供我们的结论。
2相关工作
相关的工作可以分为两类:对爬虫研究的和网页内容的提取。虽然这两种类型的研究只关注自己感兴趣的领域,但他们可以相互利用。在本文中,为了表现出这种合作的有效性,我们引入一个智能的爬虫,以提取的网页内容作为输出。
网页的链接结构表示网页之间的连接,是一种图形模型。有大量的研究对这一模式进行改进。这些研究介绍了经典的爬虫,经典爬虫使用所有的超链接信息并存储所有的网页。这种经典爬虫用来抓取高度利用的资源,如空间,时间和带宽。因此,研究提出了资源需求过度的问题和解决问题的方法。聚焦爬行的目的是要找到最相关的超链接,也可能是最相关的爬行过程。这种技术显着地节省了硬件和网络资源。经典和聚焦爬虫的所有方法和技术,都集中于使用超链接信息。然而,网页中包含了大量的其他信息,这些信息都可用于爬行过程。考虑到这一事实,我们提出了一种新的很可能有利于爬行的网页内容提取模型。
网页内容提取技术可分为手动制作的规则和自动提取。手动制作的规则大多用于从HTML通过字符串匹配功能提取信息。这种技术的使用是有效的,但它是不恰当的,劳动密集地从随时间变化的网络模板中提取信息。手动制作的规则也往往是系统不切实际的来源。
自动提取是有利的,能超过使用手工制作的规则,因为它不需要手动规格,可以方便地应用于任何网站。许多研究者一直在提高自动提取技术。这些技术可以分为三组:dom分割、定位分割,和基于视觉的分割。在基于DOM 的研究中,DOM层次的特点是用训练好的分类器从Web文档模板提取有用的内容。这些研究大多采用依赖于浅层文本特征的启发式算法,网站的超链接信息,段级文本密度比和克分布。使用DOM层次方法的动机是结构相同的或类似的重复模式,它的不同内容的模板和风格不同,也有噪声块页之间共享的原因。对此,律师约瑟夫和Rajagopalan在报告中提出去除模板增加了搜索引擎的精度,被称为Clever at all recall levels。同样,lin和ho设计了infodiscover,一种提取网页信息内容的工具。他们已经使用了表标签来分隔网页成块。其他几个工具使用顺序的方法,包括利用实例和条件随机域来清洁嘈杂的网页上的文字,基于位置的分割和依赖于感兴趣区域的位置特征等。这些区域是由它们的位置决定的,它们大多被标记为左菜单,右键菜单,尾内容等等。这种方法依赖于假设的位置,表明宽度和面积的某些标签也是有用的内容,他们应该确实结合这些标签的标签功能来提取有价值的信息。相反,在基于视觉的分割方面,用于分割的功能被替换为视觉功能,包括线,颜色,空白,图像,不同的字体大小和字体颜色的分割。基于视觉的分割方法过分依赖DOM结构,这实际上减少了分割效率,而有些方法使用视觉线索和DOM结构结合的方法。易和刘利用压缩的树形结构和网站风格的树,分别确定信息在页面的DOM节点。其他2个研究重点放在表标签。马等人寻找重复的块标记信息TD(在HTML表标签单元格)的部分,而林和何使用熵在一组词的特性,从网页消除冗余块。在本文中,我们提出了使用浅文本功能,发现七个不同的块。我们确定每一块合适的HTML标签,因为这些块不同的HTML标签之间。此外,我们认为,以前提出的方法是不适合用于产生规则,但可用于字符串操作。在我们的研究中采用的学习模型中,提供了一种方法,用于产生规则,可以用来进行有效的提信息取。此外,准备手动制作的规则是困难和麻烦的,它们的效率只能通过适当的调整来增加。虽然自动提取技术是很容易管理,但是他们仍然会导致资源的浪费。本文提出的icrawler是建立在手动制作的规则基础上自动提取适当的组合。类似于手动制作的规则,在icrawler中,自动提取技术能学习可以高效提取的规则。
3设计
本部分主要介绍了本研究中所使用的块的概念,能够帮助我们更好地掌握icrawler体系结构。特别是介绍了icrawler的体系结构中在效率方面相对比较经典的爬虫。
3.1块
下载网页后,icrawler自动提取七个不同的块来确定其后续行动。表1列出了块名称和HTML标签。
在我们的模型中有四个必要的和三个不必要的块,以我们所知,所有现有的方法集中于必要的块的提取。不必要的块被忽视,因为他们会导致在搜索,存储,索引过程出现冗余。然而,不必要的块可以是有益的爬行过程。因此,我们把这三个不必要的块纳入我们的方法。
主要内容分块是一个Web PAE最重要的部分。这部分大部分的文本都是人类可读的。标题块呈现网页标题,并显示在主要内容之前。摘要块通常在标题块和主块之间。该块通常给出了一个概述的主要内容,或提供了一个预览。其他必要的模块是作者的名字,日期,图像标题,和用户评论模块。
网页通常包含不需要的块,其中包括其他网页的超链接。我们有分类菜单,链接,以及根据他们的特点分出的其他不必要的模块。菜单模块允许用户浏览静态超链接到网页的部分。例如,一个在线报纸可能包括静态链接部分,如商业、科技、体育等。在本文中,链接块被称为块,允许网络用户浏览到在报纸上的不同的新闻文章。链接块包含动态链接,当一个新的文章添加到网站时,总是会改变动态链接。其他不必要的区块是搜索框,调查,评论,横幅和广告部分,在第4节中,所有的块和HTML标签都是其中的应用实例。
3.2 iCrawler体系结构
icrawler抓取网页,从网页中提取七种不同的块。提取这些块,可以使用2个不同的技术:提取规则或机器学习方法。然而,我们已经设计了一个提取模型,采用了这两种不同的技术彼此支持的方法,以提高爬行的性能和效率。图1显示的是icrawler架构。
软件:实践和经验
图一 icrawler体系结构
正如上面所看到的那样,有2个控制主块。第一个控件利用从第二个控制中获得的规则来使用字符串匹配函数。即使通过规则提取是一种有效的技术,手动编写这些规则是很难而且繁琐的。在我们的提取模型中,这些规则是通过第二控制自动生成的。如果第一控制不返回主块的提取结果,则调用第二控制。第二控制实施的三大主要任务,即创建DOM,制备DOM功能和把机器学习的方法应用到特征提取模块。这些任务增加了用于块提取的时间。如果第二次控制返回一个主块的提取结果,则在第一控制中生成规则。否则,它表示网页没有主块。在这种情况下,我们的爬虫解析所有的超链接并将其添加到网址调度程序。这种方法提供了一个自动确定每个网站的深度值机会。
3.2.1自动确定爬行深度
一个网络爬虫从一个网站的主页开始,然后跟随超链接到特定的深度。在这里,我们要提出一个传统的问题:网页爬虫扫描要多深?一个网络爬虫本身,不能辨别网页是否是爬行的最后一页。因此,爬虫通常由参数设置为一个给定的网页的深度值约束。图2显示了一个用于确定深度值的网站的示例链接结构。
我们将考虑S1 =(主页、链接)作为一个网站和S2 =(第页)为一个域名下一组网页,形成一个树模型。节点根据它们是否包含一个主块分为首页= { HP1、HP2... }和文章页= { AP1、AP2hellip;}。此外,如果网页有超链接,超链接是弧的集合(HPi,hpj)isin;超链接和(HPi,APJ)isin;超链接。一个网站的深度基本上是从主页(HP1)到终端文章页面(AP9,AP10...,AP13)的最短路径的长度。此参数可手动确定。例如在图2中,有5为HP1,这个值可能随不同网站甚至相同的网站的不同网页之间(例如,HP2和HP3)的变化而变化。此外这个参数可能会由于用户错误而选择错误。因此我们提出了一个内容提取模型用于解决这些问题。在这个模型中,主要内容块起一个决定性的作用。
图二.一个网站的层次树模型
main_content_block函数执行两个不同的任务:提取规则和应用机器学习算法来发现网页中的内容块。通过应用这些任务,一个文本从主要内容块被提取出来。如果提取的文本是空的,则被处理的网页被列为“高压”。否则,它被公认为是一个AP。
3.2.2快速更新
经典的爬虫把在网页中所有超链接考虑在爬行的过程中。icrawler第一个优势是,它在URL调度中只考虑HP超链接,因为AP表示树的一个网站。ic
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[29216],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。