Cobra 简介:Cobra是一个
HTML工具包。它包含一个纯
Java HTML DOM 分析器和一个页面表现引擎。Cobra支持HTML4,Javascript 和CSS2。声明的新特征有:
- 实现了W3C HTML DOM Level 2接口。
- 能够解析某些浏览器所识别的 "street HTML"。
- 能够在headless模式中被使用。
- 当文档被解析时,对于Dom修改提供incremental notifications。
- 提供增量地修改Dom的方式,比如,设置一个页面元素的 "innerHTML" 属性。
- 识别Javascript.解析过程中对Dom的修改能够在结果Dom中反映出来,另外能实现对Javascript的禁用。
- 识别css2。
使用方法:推荐做法是通过DocumentBuilderImpl类来使用Cobra HTML
parser,如下所示:
- import org.lobobrowser.html.parser.*;
- import org.lobobrowser.html.test.*;
- import org.lobobrowser.html.*;
- import org.w3c.dom.*;
- ...
- UserAgentContext context = new SimpleUserAgentContext();
- DocumentBuilderImpl dbi = new DocumentBuilderImpl(context);
-
- Document document = dbi.parse(new InputSourceImpl(inputStream, documentURI, charset));
import org.lobobrowser.html.parser.*;
import org.lobobrowser.html.test.*;
import org.lobobrowser.html.*;
import org.w3c.dom.*;
...
UserAgentContext context = new SimpleUserAgentContext();
DocumentBuilderImpl dbi = new DocumentBuilderImpl(context);
//指定文档URI和字符集合
Document document = dbi.parse(new InputSourceImpl(inputStream, documentURI, charset));
HtmlParser类也能被直接使用,尤其是在第三方Dom的实现中,或者在某个比较特殊的Dom节点(引用innerHTML属性的地方)下解析HTML:
- import org.lobobrowser.html.parser.*;
- import org.lobobrowser.html.test.*;
- import org.lobobrowser.html.*;
- import org.w3c.dom.*;
- import org.w3c.dom.html2.*;
- ...
- UserAgentContext context = new SimpleUserAgentContext();
- DocumentBuilderImpl dbi = new DocumentBuilderImpl(context);
- HTMLDocument document = (HTMLDocument) dbi.createDocument();
- ...
- HtmlParser parser = new HtmlParser(context, document);
- parser.parse(myReader, someParentNode);
import org.lobobrowser.html.parser.*;
import org.lobobrowser.html.test.*;
import org.lobobrowser.html.*;
import org.w3c.dom.*;
import org.w3c.dom.html2.*;
...
UserAgentContext context = new SimpleUserAgentContext();
DocumentBuilderImpl dbi = new DocumentBuilderImpl(context);
HTMLDocument document = (HTMLDocument) dbi.createDocument();
...
HtmlParser parser = new HtmlParser(context, document);
parser.parse(myReader, someParentNode);
性能贴士远程脚本和css文档载入速度对解析器的性能影响显著,有两种提高性能的方法:
- 禁用Javascripte 或 css
- 启用某些缓存机制
相关信息本文所涉及内容在 Cobra 0.98.1 版本中均有体现,相关下载信息和API文档:
SourceForge下载地址
Api文献
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 解析器