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");
}
}
分享到:
相关推荐
**C# HTMLParser入门详解** 在现代Web开发中,处理HTML文档是不可或缺的一部分。C# HTMLParser库为.NET开发者提供了一种高效、易用的方式来解析和操作HTML内容。本篇文章将深入探讨C# HTMLParser的基本概念,以及...
虽然在某些方面,如容错性和性能,NekoHTML可能更胜一筹,并且被HTMLUnit所采用,但HTMLParser的文档和测试用例相对更丰富,对于构建垂直搜索引擎的页面处理和分析需求,HTMLParser是一个不错的选择。 HTMLParser的...
7. **易用性**:通过提供直观的API和丰富的文档,HTMLParser.net降低了HTML解析的入门难度。 在"WinistaDownload"这个压缩包中,可能包含了以下内容: 1. **源代码**:HTMLParser.net的C#源代码,开发者可以查看并...
### Python之htmlParser入门教程详解 #### 一、HTMLParser模块简介 HTMLParser模块是Python标准库中的一个重要组成部分,主要用于解析HTML文档。该模块提供的`HTMLParser`类可以帮助开发者轻松地解析HTML或XHTML...
然而,关于HTMLParser的具体用法和示例未在描述中给出,但通常会涉及到创建解析器实例,注册事件处理器,遍历DOM树等步骤。 总结来说,Java正则表达式是处理字符串的强大工具,通过各种元字符、限定符和字符集合,...
总的来说,这个例子展示了如何利用HTMLParser库构建一个简单的网络爬虫,抓取特定网站上的基金数据。通过阅读和理解"FundTableBean.java"的代码,我们可以学习到如何解析HTML,以及如何将抓取到的数据组织和存储。这...
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 使用更多的内置...
"程序开始,这涉及编写简单的语句并保存为`.py`文件,然后通过命令行运行。 3. **文本编辑器**:选择一个适合Python编程的文本编辑器或IDE,如VS Code、PyCharm或Sublime Text,这些工具提供了语法高亮、自动补全和...
本章节通过一个简单的实例来介绍如何使用Lucene进行文本索引和搜索,让读者快速上手。 #### 三、Lucene索引的建立 - 在这一章节中,作者深入探讨了Lucene索引的建立过程,包括索引的结构、索引文档的格式、文档的...
- 易于学习和使用:Python的语法简单明了,非常适合初学者入门编程。 - 可扩展性:Python允许程序员用C语言或C++编写扩展模块,以提高性能或复用代码。 - 解释性:Python代码在运行时被解释器直接执行,无需编译步骤...
1. **Python爬虫教程**:菜鸟教程提供了一个很好的Python爬虫入门教程,适合初学者。 2. **Scrapy官方文档**:Scrapy框架的官方文档,详细介绍了使用方法和高级特性。 3. **Python爬虫实战**:崔庆才的博客分享...
- **第一个Python程序**:通过简单的例子介绍如何编写并运行Python程序。 - 使用文本编辑器 - 输入和输出 - **Python基础** - 数据类型和变量 - 字符串和编码 - 使用列表和元组 - 条件判断 - 循环 - 使用...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...