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

htmlparser关键包结构,类说明

 
阅读更多

1、org.htmlparser

 

    定义了htmlparser的一些基础类。其中最为重要的是Parser类。

    Parser是htmlparser的最核心的类,其构造函数提供了如下:Parser.createParser (String html, String charset)、 Parser ()、Parser (Lexer lexer, ParserFeedback fb)、Parser (URLConnection connection, ParserFeedback fb)、Parser (String resource, ParserFeedback feedback)、 Parser (String resource)

  各构造函数的具体用法及含义可以查看其代码,很容易理解。

  Parser常用的几个方法:

  •   elements获取元素

    Parser parser = new Parser (”http://www.google.com")/;
    for (NodeIterator i = parser.elements (); i.hasMoreElements (); )
      processMyNodes (i.nextNode ());

  • parse (NodeFilter filter):通过NodeFilter方式获取
  • visitAllNodesWith (NodeVisitor visitor):通过Nodevisitor方式
  • extractAllNodesThatMatch (NodeFilter filter):通过NodeFilter方式

2、org.htmlparser.beans

    对Visitor和Filter的方法进行了封装,定义了针对一些常用html元素操作的bean,简化对常用元素的提取操作。

    包括:FilterBean、HTMLLinkBean、HTMLTextBean、LinkBean、StringBean、BeanyBaby等。

3、org.htmlparser.nodes

    定义了基础的node,包括:AbstractNode、RemarkNode、TagNode、TextNode等。

4、org.htmlparser.tags

    定义了htmlparser的各种tag。

5、org.htmlparser.filters

    定义了htmlparser所提供的各种filter,主要通过extractAllNodesThatMatch (NodeFilter filter)来对html页面指定类型的元素进行过滤,包括:AndFilter、CssSelectorNodeFilter、 HasAttributeFilter、HasChildFilter、HasParentFilter、HasSiblingFilter、 IsEqualFilter、LinkRegexFilter、LinkStringFilter、NodeClassFilter、 NotFilter、OrFilter、RegexFilter、StringFilter、TagNameFilter、XorFilter

6、org.htmlparser.visitors

   定义了htmlparser所提供的各种visitor,主要通过visitAllNodesWith (NodeVisitor visitor)来对html页面元素进行遍历,包括:HtmlPage、LinkFindingVisitor、NodeVisitor、 ObjectFindingVisitor、StringFindingVisitor、TagFindingVisitor、 TextExtractingVisitor、UrlModifyingVisitor

 

7、org.htmlparser.parserapplications

   定义了一些实用的工具,包括LinkExtractor、SiteCapturer、StringExtractor、WikiCapturer,这几个类也可以作为htmlparser使用样例。

8、org.htmlparser.tests

   对各种功能的单元测试用例,也可以作为htmlparser使用的样例。

 

htmlparser对html页面处理的算法

 

主要是如下几种方式

  • 采用Visitor方式访问Html
try {
    Parser parser = new Parser();
    parser.setURL(”http://www.google.com")/;
    parser.setEncoding(parser.getEncoding());
    NodeVisitor visitor = new NodeVisitor() {
        public void visitTag(Tag tag) {
            logger.fatal(”testVisitorAll()  Tag name is :”
                    + tag.getTagName() + ” \n Class is :”
                    + tag.getClass());
        }
    };
    parser.visitAllNodesWith(visitor);
} catch (ParserException e) {
    e.printStackTrace();
}

 

  • 采用Filter方式访问html
try {
    NodeFilter filter = new NodeClassFilter(LinkTag.class);
    Parser parser = new Parser();
    parser.setURL(”http://www.google.com")/;
    parser.setEncoding(parser.getEncoding());
    NodeList list = parser.extractAllNodesThatMatch(filter);
    for (int i = 0; i < list.size(); i++) {
        LinkTag node = (LinkTag) list.elementAt(i);
        logger.fatal(”testLinkTag() Link is :” + node.extractLink());
    }
} catch (Exception e) {
    e.printStackTrace();
}

 

  • 采用org.htmlparser.beans方式

另外htmlparser 还在org.htmlparser.beans中对一些常用的方法进行了封装,以简化操作,例如:

Parser parser = new Parser();
LinkBean linkBean = new LinkBean();
linkBean.setURL(”http://www.google.com")/;
URL[] urls = linkBean.getLinks();
for (int i = 0; i < urls.length; i++) {
    URL url = urls[i];
    logger.fatal(”testLinkBean() -url  is :” + url);
}

 

 

 

分享到:
评论

相关推荐

    htmlparser1_6

    用户可以通过此文件了解如何使用API来解析HTML文档,包括不同类、方法和属性的详细说明。 2. **PaserHtml3.java**:这应该是项目中的一个示例源代码文件,演示了如何使用HTMLParser库解析HTML。通过阅读和运行这个...

    htmlparser api

    6. **API文档**:提供的`HTMLParser-2[1].0-API.CHM`文件是API的离线帮助文档,通常包含类的详细说明、方法签名、示例代码等内容,对于学习和使用HTMLParser API非常有帮助。 在实际应用中,HTMLParser API常被用于...

    Winista.Htmlparser.rar

    Htmlparser.chm文件很可能是一个帮助文档,包含了关于Winista.Htmlparser库的详细说明、API参考、示例代码和使用指南。通常,CHM(Compiled Help Manual)文件是微软编译的帮助文件格式,用户可以通过它来查找库的...

    由新水浒到htmlparser的一次运用

    标题“由新水浒到htmlparser的一次运用”暗示了这篇...同时,压缩包中的"HTMLParser+API.CHM"文件很可能是HTMLParser的API文档,包含了关于库的所有函数、方法和类的详细说明,是学习和使用HTMLParser的重要参考资料。

    domelementtype:htmlparser2 dom中所有类型的节点

    本篇文章将深入探讨HTMLParser2中的DOM节点类型,并结合TypeScript的相关特性进行详细说明。 DOM(Document Object Model)是W3C组织定义的一种标准,用于表示HTML或XML文档的树形结构。在HTMLParser2中,DOM节点...

    维基百科类目层次结构提取

    通过HTMLParser,我们可以解析这些链接,并将其转化为类目层次结构的数据结构,如树形结构。 这个程序的运行方式是设定一个提取的类目树深度。类目树深度是指从根类目到最远叶子类目的最大链接数。例如,如果设置...

    htmparser网页解析API文档

    这个API文档包含了对HTMLParser库的详细使用说明,是开发者理解和运用该库的重要参考资料。 HTML解析是Web开发中的核心部分,尤其是在进行数据抓取、网页自动化或者移动应用中展示网页内容时。HTMLParser提供了丰富...

    SohuSpider-Java-master.zip

    1. **源代码目录(src)**:包含Java源代码文件,这些文件可能包括爬虫主类、网页解析类、数据存储类等,命名可能如`SohuSpider.java`, `PageFetcher.java`, `HTMLParser.java`等。 2. **配置文件(config)**:可能...

    Python爬取豆瓣+数据可视化.pdf

    这是一个实例,说明了如何将爬取的数据组织成结构化的格式,以便进行后续的处理和存储。 总结起来,本篇文章主要介绍了使用Python进行网络爬虫的编写,以及如何将获取的数据进行存储和可视化处理。通过实例操作演示...

    html dom分析库

    "HTMLparser"和"HTMLparserMain"可能是库的核心代码文件,其中"HTMLparser"可能包含了解析和操作DOM的主要逻辑,而"HTMLparserMain"可能是一个示例或者入口点,展示如何在实际项目中引入和使用这个库。 使用这样的...

    JerichoHtmlParser使用介绍.pdf

    以一个具体的示例来说明,假设我们要从淘宝网的某个商品详情页中提取关键信息,如价格、运费、所在地区和收藏人气。首先,我们需要导入必要的包,如下所示: ```java import java.util.List; import ...

    chromiumrenderingpipeline.pdf

    3. HTML解析器(HTMLParser):解析器将HTML文档结构化,包括开始标签、结束标签、属性等,为后续的DOM树构建打下基础。 4. JavaScript 引擎:这一部分主要讲述了源代码解析、语法树的构建、字节码生成、JIT编译...

    论文研究-基于配置文件的可扩展数据采集方案 .pdf

    接着,论文介绍了基础组件与框架,重点提到了HttpClient包在数据采集中的作用。HttpClient是Apache组织提供的一个开源项目,用纯Java实现,支持HTTP协议的1.0和1.1版本,且支持HTTPS加密协议。它在数据采集解决方案...

    thinkphp简单爬虫

    在这个例子中,用户需要自行添加这部分代码,比如使用ThinkPHP的模型和数据库操作类来保存抓取到的信息。 关于“下载小说存为文本文档”,这表明爬虫的示例可能是从网络上抓取小说内容,并将其转换为文本文件格式。...

    JAVA上百实例源码以及开源项目源代码

    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...

Global site tag (gtag.js) - Google Analytics