`
wangcheng
  • 浏览: 1466997 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

htmlparser在分析RemarkNode注释时的bug

    博客分类:
  • java
阅读更多

在使用 htmlparser1.6 分析一段Html时发现一个bug

这段html代码如下 (只提取了其中部分代码)

<HTML>
<head></head>
<body>
<P>
                 
<!----------Start Sponsers------------------------------------------------------------------------------->

<table align="center" width="539" border="0" cellspacing="3" cellpadding="0" 
                        bgcolor=ffffff height="127"><tr>
    <td valign=top 
    colspan="2" width="529" height="15" bgcolor="#FFFFC6">
    <a href="http://www.abc.com/" target="_blank" style="font-size: 12px;">web hosting</a> 

                  <center>
<script type="text/javascript"><!--
//120x90, created 1/21/08
google_ad_width = 120;
google_ad_height = 90;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

<P><a href="http://www.baidu.com">baidu</a>
</center>
<h6 align="center">Copyright </h6>
</body>
</HTML>
 

使用LinkTag来filter连接时,发现"Start Sponsers"注释行下面的http://www.abc.com/取不到。

跟了一下源代码,发现问题出在org.htmlparser.lexer.Lexer的parseRemark()函数上。其判断Remark注释结束标志的算法有问题。

我加了一个判断Remark结束的方法如下

    public boolean isRemarkEnd(StringBuffer remarkTagEnd, char ch) {
    	remarkTagEnd.append(ch);
		if (remarkTagEnd.length() == 4) {
			remarkTagEnd.deleteCharAt(0);
		}
		return REMARK_END.equals(remarkTagEnd.toString());
    }

如果判断出Remark结束标志则设置parseRemark()函数中的done = true;

分享到:
评论
2 楼 xiaoyao1212121 2013-05-24  
你好,我现在也遇到一个需要解析html的问题,想请教你一下,不知道可不可以给我个邮箱?
1 楼 o_o_0 2012-03-12  

相关推荐

    htmlparser网页分析

    在网页分析中,HTMLParser扮演着核心角色,它能够帮助开发者有效地处理HTML源代码,提取所需的信息,甚至进行DOM(Document Object Model)操作。以下是对HTMLParser及其相关知识点的详细说明: 1. HTML解析:...

    htmlparser.jar文件

    在Java开发中,如果你需要处理或分析HTML内容,HTMLParser是一个非常有用的工具。这个库提供了一套API,使得开发者能够方便地遍历、修改或者提取HTML文档中的信息。 在描述中提到的“org.htmlparser.Node”和其他的...

    htmlparser

    META-INF/maven/org.htmlparser/htmlparser/pom.properties META-INF/maven/org.htmlparser/htmlparser/pom.xml org.htmlparser.Parser.class org.htmlparser.PrototypicalNodeFactory.class org.htmlparser.beans....

    HtmlParser

    1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_starttag`、`handle_endtag`和`handle_data`,以便在遇到HTML标签开始、结束或数据时执行特定操作。 2. **启动爬虫*...

    htmlParser.jar包

    在很多Web抓取、信息提取以及网页分析的项目中,HTMLParser都是一个理想的工具。 HTMLParser库的设计考虑了易用性和灵活性,它提供了丰富的API,允许开发者通过编程方式来访问和操作HTML文档的各个元素,如标签、...

    HTMLParser.net源代码HTMLParser.net使用demo

    本项目名为"HTMLParser.net源代码HTMLParser.net使用demo",显然是一个包含示例代码的压缩包,用于展示如何在实际应用中使用HTMLParser.net。 HTMLParser.net的核心功能包括: 1. **HTML解析**:它能够将HTML字符...

    解析htmlparser的所有jar包

    总的来说,HTMLParser提供了一个强大且灵活的工具,可以帮助Java开发者在处理HTML时避免许多常见的头痛问题。有了这个压缩包中包含的所有jar包,你将能够充分利用HTMLParser的功能,无论你是进行简单的文本提取还是...

    HtmlParser 2.1 码源

    HtmlParser是一个强大的开源库,主要用于解析HTML文档,它在处理不规则的HTML结构时表现出了极高的灵活性和稳定性。这个"HtmlParser 2.1 码源"是该库的2015年6月的最新版本,包含了用于理解和操作HTML内容的全部源...

    htmlparser的jar包

    在实际开发中,使用HTMLParser时,你可能需要处理一些常见的问题,比如CSS选择器的支持、JavaScript的解析、URL的处理等。虽然HTMLParser本身并不直接提供这些功能,但可以通过扩展其API或者与其他库(如Jsoup)结合...

    Winista.HtmlParser(含帮助手册)

    作为.NET库,Winista.HtmlParser理论上可以在任何支持.NET框架的平台上运行,包括Windows、Linux、macOS等。这使得它成为开发跨平台应用程序时的一个有力工具。 9. **实际应用**: 这个库适用于各种场景,如网页...

    c#版htmlparser htmlparser.dll htmlparser源代码

    `htmlparser.dll`是这个库的动态链接库文件,它包含了编译好的类和方法,可以直接在C#项目中引用以使用HTMLParser的功能。在C#项目中,我们可以通过添加对dll的引用来调用库中的方法,比如解析HTML字符串、查找特定...

    HtmlParser源码及demo

    4. **错误处理**:HTMLParser设计时考虑了HTML的非规范性,它具有良好的容错性,能处理不完整或不合法的HTML标签,这使得它在处理真实世界中的网页时更为实用。 5. **示例代码(Demo)**:在提供的文件中,可能包含...

    htmlparser 使用指南 入门 必读htmlparser 使用指南 入门 必读htmlparser 使用指南 入门 必读

    在使用HTMLParser时,通常会涉及到以下步骤: - 创建解析器实例,例如:`Parser parser = new Parser("http://example.com");` - 注册需要的过滤器和访问者,这些组件可以帮助我们定制解析行为,例如:`parser....

    用htmlparser分析并抽取正文

    在本文档中,我们将深入探讨如何利用HTMLParser来分析和抽取正文,这是搜索引擎优化(SEO)和网页数据挖掘中的关键步骤。 正文抽取的主要目标是从HTML文档中提取出主要的文字内容,去除广告、脚本、样式和其他非...

    Winista.Htmlparser.Net 源码 +Demo

    Winista.Htmlparser.Net是一个基于C#的开源HTML解析库,它为开发者提供了一种高效且灵活的方式来处理HTML文档,尤其在需要从HTML中提取数据或者进行网页抓取时显得尤为重要。本文将深入探讨该库的核心功能、设计原理...

    htmlparser1.6最新版

    8. **性能优化**:HTMLParser 1.6在保证解析准确性的同时,也注重性能优化,使得在处理大量网页时依然能保持高效。 在实际应用中,HTMLParser常被用于以下场景: - **数据抓取**:开发者可以使用HTMLParser抓取...

    htmlparser库与教程

    2. **基本概念**:理解HTMLParser的核心类,如`HTMLDocument`和`Node`,以及它们在解析HTML时的作用。 3. **解析HTML**:学习如何使用`HTMLParser`实例解析HTML字符串或从URL读取HTML内容。这通常涉及到创建`Parser...

    C# HTMLParser下载.rar

    这些特性确保了HTMLParser在面对各种复杂网页时的稳定性和效率。 在实际项目中,HTMLParser常用于网页爬虫、数据挖掘或者自动化测试等场景。例如,新闻网站的爬虫可能会使用HTMLParser抓取每篇新闻的标题和内容;...

Global site tag (gtag.js) - Google Analytics