免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1919 | 回复: 0
打印 上一主题 下一主题

AJAX动态网页信息提取原理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-28 16:55 |只看该作者 |倒序浏览

   
考察
网页信息提取软件工具包MetaSeeker
的实现原理可以看出:MetaSeeker使用XPath和XSLT分析网页DOM并提取网页信息,虽然也可以使用一些字符串处理函数
自定义XPath表达式

但是总体上说,与使用正则表达式分析HTML文档的方法相比区别十分明显。基于DOM的提取能够比较容易地提取AJAX动态网页信息,因为,无论DOM的
内容来自于静态网页、服务器动态网页(例如,PHP、ASP、JSP等)还是浏览器端动态网页(例如,Javascript/AJAX),只要内容需要
DOM进行展现,都可以使用一致的方法进行提取。
然而,Javascript编程语言的逻辑表述能力远远高于HTML,所以,存在各种各样的AJAX动态网页信息生成方式,使网页信息提取过程复杂
化了,不可能一下子开发出一个一劳永逸的信息提取软件来。例如,MetaSeeker早在V1.0版本就能够提取很多Javascript生成的内容,比
方说,提取Google
AdSense广告用于商业情报挖掘,但是,不能准确提取QQ群聊天记录,虽然都是AJAX/Javascript动态生成的网页内容,而且都通过DOM
进行展现,但是,构建DOM结构的方式和时机不同。例如,Google广告的Javascript代码在加载HTML文档时就执行,执行完才算完全加载了
HTML文档(虽然Google广告放在单独的IFRAME/FRAME框架中与主网页HTML异步加载,但是MetaSeeker等待整个页面的
load事件),而QQ群的Javascript代码是在加载完HTML文档后,很可能在onload()事件处理函数中构建DOM结构,所以网页信息提
取时机不能通过监视load事件来确定。甚至有些网页还会使用Javascript的setTimeout或者setInterval函数自动地周期性刷
新网页内容,也影响到网页信息提取策略。同时,这些情形很容易发展出衍生情形来,例如,假设某段代码在加载HTML文档过程中执行,如果使用同步的
XMLHttpRequest与服务器通信,是一种情况,如果使用异步的XMLHttpRequest,就会衍生出另外一种情形,这进一步增加了网页信息
提取的复杂性。
MetaSeeker V4.1.1
进行了增强,上述情形都能够处理,而且,后续版本还会持续增强以应对其它新发现的AJAX编程模式,详细使用方法和原理介绍参见
用户手册#怎样提取AJAX网页信息

  
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81110/showart_2106396.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP