Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1562265
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 23:26:23

一起学习
Cobra 简介:
Cobra是一个HTML工具包。它包含一个纯Java HTML DOM 分析器和一个页面表现引擎。Cobra支持HTML4,Javascript 和CSS2。声明的新特征有:
  1. 实现了W3C HTML DOM Level 2接口。
  2. 能够解析某些浏览器所识别的 "street HTML"。
  3. 能够在headless模式中被使用。
  4. 当文档被解析时,对于Dom修改提供incremental notifications。
  5. 提供增量地修改Dom的方式,比如,设置一个页面元素的 "innerHTML" 属性。
  6. 识别Javascript.解析过程中对Dom的修改能够在结果Dom中反映出来,另外能实现对Javascript的禁用。
  7. 识别css2。


使用方法:
推荐做法是通过DocumentBuilderImpl类来使用Cobra HTML parser,如下所示:
Java代码复制代码
  1. import org.lobobrowser.html.parser.*;
  2. import org.lobobrowser.html.test.*;
  3. import org.lobobrowser.html.*;
  4. import org.w3c.dom.*;
  5. ...
  6. UserAgentContext context = new SimpleUserAgentContext();
  7. DocumentBuilderImpl dbi = new DocumentBuilderImpl(context);
  8. //指定文档URI和字符集合
  9. Document document = dbi.parse(new InputSourceImpl(inputStream, documentURI, charset));


HtmlParser类也能被直接使用,尤其是在第三方Dom的实现中,或者在某个比较特殊的Dom节点(引用innerHTML属性的地方)下解析HTML:
Java代码复制代码
  1. import org.lobobrowser.html.parser.*;
  2. import org.lobobrowser.html.test.*;
  3. import org.lobobrowser.html.*;
  4. import org.w3c.dom.*;
  5. import org.w3c.dom.html2.*;
  6. ...
  7. UserAgentContext context = new SimpleUserAgentContext();
  8. DocumentBuilderImpl dbi = new DocumentBuilderImpl(context);
  9. HTMLDocument document = (HTMLDocument) dbi.createDocument();
  10. ...
  11. HtmlParser parser = new HtmlParser(context, document);
  12. parser.parse(myReader, someParentNode);


性能贴士
远程脚本和css文档载入速度对解析器的性能影响显著,有两种提高性能的方法:
  1. 禁用Javascripte 或 css
  2. 启用某些缓存机制


相关信息
本文所涉及内容在 Cobra 0.98.1 版本中均有体现,相关下载信息和API文档:
SourceForge下载地址
Api文献

TAG: html parser

下载本文示例代码


Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器 Cobra: Java HTML 解析器
阅读(914) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~