`
szjian
  • 浏览: 74675 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

htmlparser获取循环节点内容和单个标签内容的方法

    博客分类:
  • JAVA
阅读更多
htmlparser接口可用于提取分析html页面的内容。
本文只简单说明下如何利用htmlparser获取某个节点标签的内容,和获取循环节点的列表内容的个人总结。其它操作方法,因网上已经有很多相关的帮助文档,在此不再重复说明。

大致思路:
1:定义org.htmlparser.filters的类型,确定需要获取的标签或内容范围。常用的HMLT filter类型有:AndFilter、HasAttributeFilter、HasChildFilter、HasParentFilter、LinkStringFilter、NotFilter、OrFilter、TagNameFilter等类型。
为了更好定位所需要查找的页面内容,可以用多个Filter进行组合定位,如:AndFilter andFilter = new AndFilter(tagFilter,hasChildFilter);

2:通过NodeList list = parser.extractAllNodesThatMatch(andFilter);获取满足条件的节点列表。

3:对列表list进行循环遍历,在各个遍历里面,可以获取分析多个不同节点的内容,如获取某循环节点的内容和链接:
for(int i=0;i html = list.elementAt(i).toHtml();
// 获取内容
TagNameFilter pFilter = new TagNameFilter(\"p\");
HasAttributeFilter pAttributeFilter = new HasAttributeFilter(\"class\",\"sms\");
AndFilter pAndFilter = new AndFilter(pFilter,pAttributeFilter);
pParser = Parser.createParser(html, charset);
pList = pParser.extractAllNodesThatMatch(pAndFilter);
System.out.println(\"content:\"+pList.elements().nextNode().toPlainTextString());

// 获取连接
TagNameFilter aFilter = new TagNameFilter(\"a\");
HasChildFilter aChildFilter = new HasChildFilter(new TagNameFilter(\"strong\"));
AndFilter aAndFilter = new AndFilter(aFilter,aChildFilter);
pParser.reset();
pList = pParser.extractAllNodesThatMatch(aAndFilter);
// System.out.println(\"url:\"+pList.elements().nextNode().toHtml());
LinkTag linkTag = (LinkTag)pList.elements().nextNode();
System.out.println(\"url's link:\"+linkTag.getLink());
System.out.println(\"url's content:\"+linkTag.getLinkText());
}
至此,循环列表的内容,已经能全部获取到。
4:针对各种HMLT标签,htmlparser提供了各类标签的接口,为各类标签提供了各自个性化的方法,以便开发者更好更方便的调用。
举例如下:
如果想对某链接标签www.xxx.com\" class=\"xxx\">进行内容的提取,可以通过正则表达式或字符串处理来获取到自己想要的内容。但更方便的,可以通过各种相应的xxxTag接口进行处理。如:LinkTag linkTag = (LinkTag)pList.elements().nextNode();
System.out.println(\"url's link:\"+linkTag.getLink());
System.out.println(\"url's content:\"+linkTag.getLinkText();

5:具体htmlparser的API,参见官方文档:http://htmlparser.sourceforge.net/javadoc/

6:以上只是个人使用htmlparser的一个小小总结,欢迎交流。

分享到:
评论

相关推荐

    htmlparser库与教程

    4. **遍历和访问HTML元素**:HTMLParser提供了对HTML文档节点的遍历方法,如`getElementsByTag()`,可以根据标签名获取元素集合。通过`getText()`或`getAttribute()`等方法,可以获取元素的内容和属性值。 5. **...

    HtmlParser

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

    htmlparser抓取论坛帖子内容的代码

    // 提取或处理节点内容 } ``` 6. **爬虫集成** 将HTMLParser与HTTP客户端库(如Apache HttpClient或OkHttp)结合,可以实现完整的网络爬虫功能,自动下载页面并进行解析。 总结,HTMLParser是一个强大的Java库...

    htmlparser.jar文件

    HTMLParser提供了多种方法来访问和操作解析树,比如`parseContent()`用于获取整个文档的节点列表,`visitAllNodesWith()`可以遍历所有节点并应用自定义的访问器,`getFirstNodeWithTag()`用于找到第一个特定标签的...

    htmlparser抓取网页内容

    通过继承HTMLParser类并覆盖其特定方法(如`handle_starttag`和`handle_data`),我们可以定义处理HTML标签和文本数据的逻辑。当解析器遇到HTML标签或数据时,这些方法会被调用,从而让我们可以捕获和处理网页内容。...

    扩展HTMLParser对自定义标签的处理能力

    资源名称:扩展HTMLParser对自定义标签的处理能力内容简介: HTMLParser是一个用来解析HTML文档的开放源码项目,它具有小巧、快速、使用简单的特点以及拥有强大的功能。 现在该项目的最新版本是Integration Build ...

    使用 HttpClient 和 HtmlParser 实现简易网络爬虫

    【HttpClient和HtmlParser简介】 HttpClient是一个Java库,用于简化HTTP通信。它是由Apache Jakarta项目开发的,旨在提供更高效、更灵活的HTTP客户端支持。HttpClient提供了丰富的特性,遵循最新的HTTP标准,支持...

    htmlparser解析API

    HTMLParser设计的目的是为了方便地解析、提取或修改HTML内容,适用于网页数据抓取和HTML文档处理。 在使用HTMLParser时,首先需要创建一个`Parser`对象。可以通过传递一个`URLConnection`对象来构造`Parser`,这样...

    c#版htmlparser htmlparser.dll htmlparser源代码

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

    htmlparser网页分析

    4. 使用示例:在"HTMLParser使用详解-Node内容.doc"中,可能详细介绍了如何创建和配置解析器对象,设置解析事件处理器,以及如何通过遍历节点来提取或修改HTML内容。例如,可以使用`TagStart`事件捕获元素开始,`...

    Winista.HtmlParser.zip

    在这种背景下,Winista.HtmlParser应运而生,它是一款专为Unity开发者设计的高效HTML解析插件,旨在帮助开发者轻松地在Unity中解析和操作HTML内容。 Winista.HtmlParser的核心功能是将HTML字符串转换为易于操作的...

    HTMLParser提取网页内容

    可以使用HTMLParser库提供的API来遍历DOM树,查找这些元素并获取其文本内容。 例如,对于标题提取,可以遍历HTML中的所有`<h1>`到`<h6>`标签,然后收集它们的文本;对于正文,可以寻找段落标签或其他可能包含正文...

    HtmlParser 2.1 码源

    这个"HtmlParser 2.1 码源"是该库的2015年6月的最新版本,包含了用于理解和操作HTML内容的全部源代码。 1. **解析HTML的基本原理** HtmlParser采用了事件驱动的解析模式。在解析过程中,遇到HTML元素、属性、文本...

    HTMLParser使用文档和jar包

    本篇将详细阐述HTMLParser的使用方法、功能以及提供的相关资源。 首先,`HTMLParser-2.0-SNAPSHOT-doc.zip`包含了HTMLParser的使用文档。这份文档通常包含API参考、教程、示例代码和用户指南,是学习和理解...

    HTMLParser抽取Web网页正文信息.doc

    解压后的`htmlparser.jar`文件需要被添加到项目的class path中,以便在编程时能够调用相关的类和方法。通过在代码中导入`HTMLParser`包,可以开始利用其强大的功能。 #### 三、HTMLParser的基本操作流程 1. **初始...

    java解析html工具htmlparser的jar包及api文档

    API文档是使用HTMLParser的关键,它详尽地解释了库中每个类、方法和接口的用途。通过API文档,开发者可以了解如何初始化解析器,如何遍历HTML元素,以及如何处理各种HTML标签。例如,HTMLParser库可能会提供如`...

    HTMLParser-2.0-SNAPSHOT

    Node接口提供了访问子节点、父节点、兄弟节点以及获取和修改属性的方法。 4. **Tag类**:表示HTML标签,如`<div>`、`<a>`等。Tag对象包含了标签名称和相关属性,可以通过API来检查标签类型、获取属性值或者修改属性...

    Htmlparser 网页内容抓取java

    在网页内容抓取领域,HTMLParser扮演着至关重要的角色,它可以帮助开发者高效、准确地解析复杂的网页结构,从而获取所需的信息。以下是对HTMLParser及其应用的详细介绍。 首先,HTMLParser提供了对HTML文档的解析...

    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....

Global site tag (gtag.js) - Google Analytics