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

HtmlParser简单入门例子

阅读更多
HTML网页
<html>

       <title></title>

       <head></head>

       <body>

          <table id="table1">

            <tr>

               <td class="a1">AAA</td>

               <td class="a2">BBB</td>

               <td class="a3">CCC</td>

            </tr>

            <tr>

               <td class="a4">DDD</td>

               <td class="a5">EEE</td>

               <td class="a6">FFF</td>

            </tr>

            <tr>

               <td class="a7">GGG</td>

               <td class="a8">HHH</td>

               <td class="a9">III</td>

            </tr>

            <tr>

               <td class="a10">JJJ</td>

               <td class="a11">KKK</td>

               <td class="a12">LLL</td>

            </tr>

          </table>

          <table id="table2">

            <tr>

               <td class="b1">MMM</td>

               <td class="b2">NNN</td>

               <td class="b3">OOO</td>

            </tr>

            <tr>

               <td class="b4">PPP</td>

               <td class="b5">QQQ</td>

               <td class="b6">RRR</td>

            </tr>

            <tr>

               <td class="b7">SSS</td>

               <td class="b8">TTT</td>

               <td class="b9">UUU</td>

            </tr>

            <tr>

               <td class="b10">VVV</td>

               <td class="b11">WWW</td>

               <td class="b12">XXX</td>

            </tr>

          </table>

       </body>

     </html>




/**
*使用htmlparser解析类
*/

public class FilterExample {



	private static void testParser(String url) {

		try {

		      //生成一个解析器对象,用网页的 url 作为参数

		      Parser parser = new Parser(url);

		      //设置网页的编码,这里只是请求了一个UTF-8编码网页

		      parser.setEncoding("UTF-8");

		      // 方法一Filter:根据tag中的class或id去解析得到想要的数据

		      NodeFilter beginNodeFilter = new AndFilter(new TagNameFilter("td"),new HasAttributeFilter("class", "b1"));

		      NodeList nodeList = parser.extractAllNodesThatMatch(beginNodeFilter);

		        if (nodeList != null && nodeList.size() > 0) {

		            Node nameNode = nodeList.elementAt(0);

		            String name = nameNode.toPlainTextString().trim();

		            System.out.println(name);

		        }

		      parser.reset();

		      // class="b1"是唯一的,所以如果我们想得到 MMM 的话就可以直接这样取到

		      

		      // 方法二Node:根据节点Table的tag去解析

//		      NodeFilter tableFilter = new TagNameFilter("table");

//		      NodeList nodeList = parser.extractAllNodesThatMatch(tableFilter);

//		      TableTag nodeTable = (TableTag)nodeList.elementAt(1);                     //第二个table的节点    

//		      Node nodeTr = nodeTable.getChildren().elementAt(0).getNextSibling();      //table下面第一个子节点

//		      Node nodeTd = nodeTr.getChildren().elementAt(0).getNextSibling();         //tr下面第一个子节点

//		      String name = nodeTd.toPlainTextString().trim();         //返回纯文本信息

//		      System.out.println(name);

//		      parser.reset();

		    }catch(ParserException e){

		      e.printStackTrace();

		    }

		    //输出的结果同样是 MMM

	}

	

	public static void main(String[] args) {

		testParser("E:/HttpClient/Noname1.html");

	}

}
0
1
分享到:
评论
1 楼 anybyb 2012-01-04  
呵呵正好学习这个!

相关推荐

    C#htmlparser及入门资料

    **C# HTMLParser入门详解** 在现代Web开发中,处理HTML文档是不可或缺的一部分。C# HTMLParser库为.NET开发者提供了一种高效、易用的方式来解析和操作HTML内容。本篇文章将深入探讨C# HTMLParser的基本概念,以及...

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

    虽然在某些方面,如容错性和性能,NekoHTML可能更胜一筹,并且被HTMLUnit所采用,但HTMLParser的文档和测试用例相对更丰富,对于构建垂直搜索引擎的页面处理和分析需求,HTMLParser是一个不错的选择。 HTMLParser的...

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

    7. **易用性**:通过提供直观的API和丰富的文档,HTMLParser.net降低了HTML解析的入门难度。 在"WinistaDownload"这个压缩包中,可能包含了以下内容: 1. **源代码**:HTMLParser.net的C#源代码,开发者可以查看并...

    python之htmlParser入门教程分享.docx

    ### Python之htmlParser入门教程详解 #### 一、HTMLParser模块简介 HTMLParser模块是Python标准库中的一个重要组成部分,主要用于解析HTML文档。该模块提供的`HTMLParser`类可以帮助开发者轻松地解析HTML或XHTML...

    Java正则表达式入门 + HTMLParser使用详解

    然而,关于HTMLParser的具体用法和示例未在描述中给出,但通常会涉及到创建解析器实例,注册事件处理器,遍历DOM树等步骤。 总结来说,Java正则表达式是处理字符串的强大工具,通过各种元字符、限定符和字符集合,...

    网络爬虫htmlparser

    总的来说,这个例子展示了如何利用HTMLParser库构建一个简单的网络爬虫,抓取特定网站上的基金数据。通过阅读和理解"FundTableBean.java"的代码,我们可以学习到如何解析HTML,以及如何将抓取到的数据组织和存储。这...

    Python编程入门经典

    2.3.4 几个不寻常的例子 26 2.4 本章小结 26 2.5 习题 27 第3章 变量 29 3.1 引用数据——使用数据的 名称 29 3.1.1 使用名称修改数据 30 3.1.2 复制数据 31 3.1.3 禁用的名称以及一些规则 31 3.2 使用更多的内置...

    PYTHON从入门到精通.doc

    "程序开始,这涉及编写简单的语句并保存为`.py`文件,然后通过命令行运行。 3. **文本编辑器**:选择一个适合Python编程的文本编辑器或IDE,如VS Code、PyCharm或Sublime Text,这些工具提供了语法高亮、自动补全和...

    自己动手写搜索引擎

    本章节通过一个简单的实例来介绍如何使用Lucene进行文本索引和搜索,让读者快速上手。 #### 三、Lucene索引的建立 - 在这一章节中,作者深入探讨了Lucene索引的建立过程,包括索引的结构、索引文档的格式、文档的...

    Python3-廖雪峰 高清完整PDF版

    - 易于学习和使用:Python的语法简单明了,非常适合初学者入门编程。 - 可扩展性:Python允许程序员用C语言或C++编写扩展模块,以提高性能或复用代码。 - 解释性:Python代码在运行时被解释器直接执行,无需编译步骤...

    python爬虫基础知识、爬虫实例、反爬机制等资源.docx

    1. **Python爬虫教程**:菜鸟教程提供了一个很好的Python爬虫入门教程,适合初学者。 2. **Scrapy官方文档**:Scrapy框架的官方文档,详细介绍了使用方法和高级特性。 3. **Python爬虫实战**:崔庆才的博客分享...

    廖雪峰Pyhton教程3.x版[完整版]

    - **第一个Python程序**:通过简单的例子介绍如何编写并运行Python程序。 - 使用文本编辑器 - 输入和输出 - **Python基础** - 数据类型和变量 - 字符串和编码 - 使用列表和元组 - 条件判断 - 循环 - 使用...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包2

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包7

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics