package cn.htmlparser.com.main;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.nodes.TagNode;
import org.htmlparser.util.NodeList;
public class HtmlParserTest
{
public static void main(String[] args) throws Exception
{
long now = System.currentTimeMillis();
htmlParser("http://www.sina.com.cn/");
long current = System.currentTimeMillis();
System.out.println("所用时间:"+((double)(current - now)/1000));
}
//HtmlParser解析器
public static void htmlParser(String resource) throws Exception
{
/**
* 解析器
*/
Parser myParser = new Parser(resource);
/** 设置编码 */
myParser.setEncoding("GBK");
/** 过滤对象 */
String filterStr = "div";
/**
* 过滤到的Node
*/
NodeFilter filter = new TagNameFilter(filterStr);
/**
* 那场比赛中提取所有节点 按指定的标签名过滤 这里过滤的是div
*/
NodeList nodeList = myParser.extractAllNodesThatMatch(filter);
/**
* 读取出所有过滤到的标签
*/
for (int i = 0; i < nodeList.size(); i++)
{
// Node node = nodeList.elementAt(i);
// System.out.println(node.toHtml());
}
/**
* 按指定的标签来查询 AndFilter(标签名,标签属性) 指定的节点过滤器
*/
NodeFilter filter_blog_box = new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "footer"));
nodeList = nodeList.extractAllNodesThatMatch(filter_blog_box);
/**
* 获取标签内的全部内容
*/
TagNode tagNode = (TagNode) nodeList.elementAt(0);
nodeList = tagNode.getChildren();
//输出html代码
System.out.println(nodeList.toHtml());
}
}
分享到:
相关推荐
基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于...
HTML文档解析器,如其名,是用于处理和解析HTML(超文本标记语言)文档的工具。在前端开发中,理解和掌握HTMLParser的工作原理及应用是至关重要的,因为这直接影响到网页的渲染效率和用户体验。 HTML是一种标记语言...
HTMLParser是Python标准库中的一个模块,它提供了一个基础的事件驱动的HTML解析器。这个解析器并不尝试理解HTML的语义,而是将HTML文档分解成一系列的标记事件,如开始标签、结束标签、字符数据等。开发者可以注册...
HTMLParser也提供了SAX解析器接口,适合处理大体积的HTML文件。 **5. 解析示例** 使用HTMLParser,可以实现如下功能: - 提取网页中的链接:通过监听`startTag("a", attrs)`事件,解析`href`属性获取链接地址。 - ...
为了使用这个解析器,我们需要创建一个实例,并调用`feed()`方法,传入要解析的HTML字符串或文件内容。例如: ```python parser = MyHTMLParser() with open('网页.html', 'r') as file: parser.feed(file.read())...
HTML文档解析器是一款用于处理和解析HTML文档的工具,它能够帮助开发者有效地分析网页结构,提取所需...理解和掌握HTML解析器的工作原理以及如何利用HTMLParser这样的库,对于从事Web开发的人来说是至关重要的技能。
通过API文档,开发者可以了解如何初始化解析器,如何遍历HTML元素,以及如何处理各种HTML标签。例如,HTMLParser库可能会提供如`HTMLDocument`和`HTMLElement`这样的类,用于代表整个文档和文档中的单个元素。`...
2. **创建解析器**:通过实例化解析器类,如`HtmlParser`,并设置相应的解析模式和配置。 3. **解析HTML**:调用解析器的`parse`方法,传入HTML源码或输入流,开始解析过程。 4. **处理解析事件**:注册事件处理器,...
JAVA源码HTML文档解析器HTMLParser
HTMLParser是一款专为Java开发人员设计的开源库,用于解析HTML文档。这个工具包小巧而强大,能够处理不规则的HTML结构,对于处理网络爬虫、网页数据提取或需要解析HTML内容的应用程序来说,是非常实用的。在提供的...
2. **数据挖掘**:在进行网页数据挖掘时,可以利用HTMLParser解析HTML,提取有价值的结构化数据。 3. **HTML清洗**:对于从网络上获取的不规范的HTML,HTMLParser可以用来清理和标准化HTML代码。 4. **自动化测试*...
java资源HTML文档解析器 HTMLParser提取方式是百度网盘分享地址
这个"基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip"提供了一个具体的实现,帮助开发者更好地理解和应用这项技术。以下是关于这个主题的详细解释: 1. **HTML文档解析**:HTML(HyperText Markup Language...
例如,以下是一个简单的使用HTMLParser解析HTML并打印所有`<a>`标签的例子: ```java import org.htmlparser.Parser; import org.htmlparser.util.NodeIterator; import org.htmlparser.nodes.TagNode; public ...
java源码:HTML文档解析器 HTMLParser.rar
2. **Parser**: 解析器使用HTMLTokenizer生成的令牌来构建DOM树。它可以处理嵌套标签、闭合标签的问题,以及HTML的非规范性,比如未闭合的标签或不正确的嵌套。 3. **事件驱动的解析模式**: HTMLParser支持事件驱动...
1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_starttag`、`handle_endtag`和`handle_data`,以便在遇到HTML标签开始、结束或数据时执行特定操作。 2. **启动爬虫*...
在C#中,HTMLParser可能采用了递归下降解析器或基于事件的解析器模式。递归下降解析器通常使用函数或方法的递归来匹配HTML标记,而基于事件的解析器则在遇到特定的HTML元素时触发事件,使得处理更加灵活。 标签`c# ...
解决方法用武稀松的html解析器不用微软的mshtml IHTMLDocument2.txt" - 这个文件可能详细介绍了如何使用IdHTTP组件(一个在Delphi中常用的HTTP客户端库)编写网页爬虫时遇到的内存泄漏问题,以及如何通过使用...