`
gstarwd
  • 浏览: 1538306 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Cobra: Java HTML 解析器

阅读更多
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));  
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:
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);  
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文档载入速度对解析器的性能影响显著,有两种提高性能的方法:
  1. 禁用Javascripte 或 css
  2. 启用某些缓存机制


相关信息
本文所涉及内容在 Cobra 0.98.1+版本中均有体现,相关下载信息和API文档:
SourceForge下载地址
Api文献
<script type="text/javascript">&lt;!-- google_ad_client = &quot;pub-4348265167276910&quot;; /* 468x60, 新闻频道文章 */ google_ad_slot = &quot;1877597309&quot;; google_ad_width = 468; google_ad_height = 60; //--&gt; </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script>google_protectAndRun(&quot;ads_core.google_render_ad&quot;, google_handleError, google_render_ad);</script>

评论 共 5 条 发表评论

5 楼 wukele 2010-03-25 15:01 引用
[/b][b] [b][/b][/i][i] [/u][u] [color=brown][/color]          
4 楼 zhangyou1010 2010-02-04 11:38 引用
我做的一个程序中用这个支持JS.
转DOM还好. 执行JS时可能会报异常. 对JS语法支持与浏览器还有点差距.
我对cobra.jar做了一点点改动. 主要是请求超设置与字符转码.
3 楼 zhangyou1010 2010-02-04 11:38 引用
我做的一个程序中用这个支持JS.
转DOM还好. 执行JS时可能会报异常. 对JS语法支持与浏览器还有点差距.
我对cobra.jar做了一点点改动. 主要是请求超设置与字符转码.
2 楼 Eric_2007 2008-12-19 16:27 引用
哪位高手能详细写个帖子,像这类Html的解析工具该如何学习呢,感觉不知从哪下手,学习效率很低啊,难度很大啊!如有高手回应,本人将不胜感 激!
1 楼 fins 2008-03-27 09:07 引用

感兴趣 研究一下

基于这个应该可以开发一些类似自动测试的东西吧

分享到:
评论

相关推荐

    cobra html解析器

    Cobra HTML 解析器是一款强大的工具,专为处理和解析HTML文档而设计。它是一个开源库,通常被开发者用于从网页中提取数据、自动化测试或构建网络爬虫等任务。Cobra解析器以其高效、灵活和易于使用的特性在IT行业中...

    javaeye月刊2008年3月 总第1期.pdf

    15. **Cobra:Java HTML解析器**:Cobra可能是当时一个新的Java库,用于解析HTML文档,对于Web开发和数据抓取很有帮助。 这些内容反映了2008年Java社区的技术焦点和创新方向,包括框架的演进、开发工具的进步以及...

    JavaEye新闻月刊 - 2008年3月 总第1期.pdf

    15. **Cobra:Java HTML解析器**:Cobra是用于解析HTML的Java库,对于处理网页内容和爬虫开发具有实用性。 这些内容展示了2008年Java技术生态的活跃度,包括框架的创新、IDE的改进、编程范式的讨论,以及对新技术和...

    Cobra (HTML工具包源码)

    总的来说,Cobra是一个功能强大的HTML处理工具,适用于需要在Java环境中进行HTML解析、分析和呈现的应用场景。其全面的HTML、JavaScript和CSS支持,以及纯Java的实现,使它在各种项目中都有广泛的应用潜力。

    vue-cobra::snake:Vuejs的阅读位置指示器

    安装npm npm install vue-cobra --save纱yarn add install vue-cobra用法默认&lt; template&gt; &lt; div&gt; &lt; vue&gt; &lt;/ div&gt;&lt;/ template&gt;&lt; script &gt; import vueCobra from "vue-cobra" ; export default { name : "Demo" ...

    Cobra 网页渲染引擎

    Cobra是一款基于Java语言开发的网页渲染引擎,它专为处理网页内容和解析DOM(Document Object Model)节点而设计。作为一个强大的工具,Cobra能够帮助开发者深入理解网页结构,并能有效地获取每个节点在页面上的位置...

    cobra HTML转图片的jar

    Cobra工具的核心可能使用了Webkit或Gecko等浏览器内核,这些内核能够完整地解析和渲染HTML,包括CSS样式和JavaScript代码。在Java环境中,可以借助如HtmlUnit、PhantomJS、Puppeteer等库来实现这一功能。这些库能够...

    Edmilson-a-Cobra:Joguinho da Cobra没有终端

    【标题】"Edmilson-a-Cobra:Joguinho da Cobra没有终端"指的是一个名为“埃德米尔森·眼镜蛇”的项目,其中包含了“Joguinho da Cobra”这一部分,它似乎与终端操作无关。这个项目可能是一个用Java语言开发的软件或...

    COBRA:COBRA 是一个用于特征选择的 matlab 工具包。 它基于互信息准则并解决一个半定规划问题来选择一组信息特征

    COBRA:特征选择工具包 要运行这个程序,您可以按照以下步骤操作:首先需要在 MATLAB 中安装 mi 库和 Yalmip。 1- 确保您的 MATLAB 中安装了互信息工具箱。 如果没有,请先从下载 并按照其说明进行安装。 2- 确保...

    cobra 0.98.4

    Cobra基于Mozilla的Rhino JavaScript引擎,Rhino是一款开源的JavaScript解释器,它完全用Java编写,能够无缝地与Java应用程序集成。Rhino以其高性能和强大的JavaScript功能而闻名,使得Cobra能够执行复杂的...

    java图书馆swing源码-cobra:Windows版Linux桌面测试项目

    java图书馆swing源码Cobra WinLDTP 基于 Linux 桌面测试项目 - LDTP 适用于 Windows/Linux/Mac/Solairs/FreeBSD/NetBSD/Palm Source,是的,它的跨平台 GUI 测试工具。 请与我们分享您的反馈()。 Linux 众所周知,...

    java安全类源码-Cobra:SourceCodeSecurityAudit(源代码安全审计)

    java安全类源码Cobra 该项目设计已无法实现当前白盒扫描要求,已不在维护,仅做研究使用,请勿在生产环境使用 Introduction(介绍) Cobra是一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显着的...

    Cobra:交互式(快速)静态源代码分析器

    眼镜蛇交互式静态源代码分析器Cobra是一种快速的代码分析器,可用于交互式探查和查询多达数百万行的代码。 该工具的基本设计是与语言无关的,尽管已经开发了许多针对C或类似C语言的查询和规则库,并且这些库已包含在...

    COBRA SOAP介绍

    **COBRA:通用对象请求代理体系结构** COBRA,即通用对象请求代理架构,是90年代末期出现的一种面向对象的中间件技术。它的主要目标是提供一种平台和语言无关的方式来实现跨网络的分布式计算。COBRA通过ORB(Object...

    Cobra:现代Go CLI交互的指挥官-开源

    Cobra是一个用于创建功能强大的现代CLI应用程序的库,同时是一个用于生成应用程序和命令文件的程序。 它提供了用于创建功能强大的CLI界面的简单界面,还将生成应用程序支架,因此您可以快速开发基于Cobra的应用程序...

    Go-GogRPC的Cobra命令行工具生成器

    "Go gRPC的Cobra命令行工具生成器"是为了解决在gRPC服务中创建易于使用的命令行界面的问题。通过这个工具,开发者可以快速地为gRPC服务添加命令行操作,使得服务不仅可以通过gRPC接口调用,还可以通过命令行执行,...

    Cobra:我自己的编程语言是用Python编写的(现在您知道为什么将其称为Cobra了)

    我自己的程序是用Python编写的(现在您知道为什么将其称为Cobra)。 要求 目前,不需要任何外部模块。 您只需要Python编程语言。 用法 怎么跑 您要做的就是: python execute.py 您还有2个其他选择: 视窗 cobra ...

    lobobrowser的cobra.jar包

    Cobra.jar 文件包含了 Lobo 浏览器引擎的类库,这些类库负责解析 HTML、CSS、JavaScript,以及处理网络请求和渲染页面。 **Java Archive (JAR) 文件** JAR 文件是 Java 平台上的标准归档格式,用于集合多个 Java ...

    cobra:源代码安全审核(Source Code Security Audit)

    Cobra是一种源代码安全审计工具,支持检测多种开发语言源代码中的大部分显着的安全问题和漏洞。 功能(特点) 多语言支持(支持多种开发语言) 支持PHP,Java等开发语言,并支持数十种类型文件。 支持的多个漏洞...

    Cobra网站漏洞安全检测工具

    Cobra是一款功能强大的网站漏洞安全检测工具,专为网络安全专业人士设计,用于发现并解决网站潜在的安全问题。在当今数字化时代,网络安全至关重要,而Cobra正是这样一款能够帮助我们确保网络资产安全的重要工具。 ...

Global site tag (gtag.js) - Google Analytics