对两种动态页面采集方法介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对两种动态页面采集方法介绍

对两种动态页面采集方法介绍   摘 要:动态页面大多都采用后加载技术,也就是采用脚本语言(如JavaScript)去动态加载内容,传统的采集器只会抓取网页,采集器不会执行页面中的脚本代码,必须通过浏览器执行脚本才能解析得到超链接网络地址和网页主体内容。基于此,本文简要介绍了两种动态页面采集方法。   关键词:动态页面 采集方法   中图分类号:TP393 文献标识码:A 文章编号:1673-1875(2009)04-090-01      在互联网媒体内容监控领域,我们重点关注的对象是URL地址以及网页中的主体内容。一般来说,静态页面的主体内容及其内部包含的URL地址分别以文本信息和唯一资源标识符(URL)的方式直接嵌入页面源文件的HTML标记(Tag)中。我们可以通过对HTML页面的分析,提取出相应的静态URL地址以及文本内容,从而完成信息采集工作。然而,动态页面大多都采用后加载技术,也就是采用脚本语言(如JavaScript)去动态加载内容,其中很多模块都是后加载进去的。这些页面中的主体内容必须通过浏览器执行脚本才能解析得到的超链接网络地址和网页主体内容。当前动态页面采集的主要方法主要是两种:第一种方法是利用现有的开源浏览器接口(比如Firefox),根据浏览器的输出结果来进行采集;第二种方法是利用现有的脚本解释引擎(如Rhino、SpiderMonkey),根据信息采集的需要,对相关DOM对象进行绑定,然后对输出结果进行采集。   在第一种方法中,现在比较常用的是Jrex组件,Jrex是一种Java webbrowser组件,该组件封装了Mozilla的Gecko库,提供java类库给应用程序调用。利用jrex,可以写一个java应用程序访问某个页面,然后等该页面下载完毕并且执行了javascript后,Jrex browser引擎把文档转换成DOM模型,重新结构化该html页面,从而得到相关的URL链接和主体内容。   但,这种方法存在一些不足。采用渲染引擎对JS脚本进行解析,虽然能获得与浏览器结果更接近的解析结果,但由于采用渲染引擎,消耗资源相对要大很多,性能较差,而且由于其是对整个页面的完整解析,因此提取了很多与文字信息和URL链接无关的信息。   第二种方法主要是对JS脚本解释引擎进行功能扩展,在对网页文件进行解析之后,形成DOM树,然后将DOM对象与JS解释引擎进行绑定,最后将JS代码交给JS解释引擎进行解析输出。相对于渲染引擎对JS脚本进行解析不同,采用JS脚本解释引擎来对JS脚本进行解析,并自行构建脚本解析环境的方法则针对性更强,执行效率更快,方案实现过程中使用的资源空间更少。采集方案主要包含四个模块:页面分析模块、JS解析模块、DOM支持模块、提取文本及URL模块。首先通过HTTP请求,获取需要抓取的页面,网页分析模块主要是分析页面元素信息,形成DOM树,对DOM树进行遍历,提取出JS脚本代码,然后由JS解析模块执行上一模块中得到的JS脚本代码,获取从服务器返回的请求内容,对于含有浏览器内置DOM对象的JS代码,通过DOM支持模块将DOM对象与JS解释引擎进行绑定,再进行JS解析。最后,提取URL模块利用上一模块的结果重新组合生成新的页面内容,提取页面中的URL和文本内容。   页面分析模块主要采用了NekoHTML和Xerces来对Web页面进行解析,形成DOM树,并通过遍历DOM树,提取JS代码。DOM树是HTML文档及XML文档的应用程序接口,W3C提供了精确的、与语言无关的DOM接口规范,可以用任何语言来实现DOM接口。作为W3C的规范,DOM提供了一种可以应用于不同平台和不同编程语言中的标准的程序接口。它定义了文档的逻辑结构,把一个文档看成是一棵树,文档中每个部分都是树上的一个结点,对结点可以进行各种遍历、查询、删减、修改操作,并提供了对结点进行访问和操作的方法。这样,利用DOM,我们就可以动态地创建文档,遍历文档结构,添加修改文档内容,改变文档的显示方式等。所以,要在系统中实现DOM接口,先要按DOM规范将HTML文档构建成一些由结点构成的DOM树。根据构建的DOM树,遍历网页中的每个节点,查找标记对,获得所有script相关代码。对于互联网媒体内容监控系统来说,在网页中外部JS文件一般来说都是广告或版面等无用信息,因此这里我们将外部JS文件丢弃不进行处理,以增加监控系统的有效性和针对性。DOM支持模块主要工作是将DOM与JavaScript进行绑定。由于JS解释引擎Rhino只能支持JS脚本语言的内置对象,而不能识别和执行浏览器DOM对象,因此必须先将DOM与JavaScript绑定,在JavaScript引擎里实现DOM接口。在互联网媒体内容监控系统中,由于我们主要是提

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档