欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

HtmlParser 简介

发布时间:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 HtmlParser 简介 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

htmlparserhtml页面处理的算法

 

主要是如下几种方式

  采用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) {

            System.out.println (”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);

        System.out.println(”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];

    System.out.println (”testLinkBean() -url  is :” + url);

}

 

Htmlparser关键包结构说明

    htmlparser其实核心代码并不多,好好研究一下其代码,弥补文档不足的问题。同时htmlparser的代码注释和单元测试用例还是很齐全的,也有助于了解htmlparser的用法。

 

3.1org.htmlparser

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

    Parserhtmlparser的最核心的类,其构造函数提供了如下: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方式

3.2org.htmlparser.beans

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

    包括:FilterBeanHTMLLinkBeanHTMLTextBeanLinkBeanStringBeanBeanyBaby等。

3.3org.htmlparser.nodes

    定义了基础的node,包括:AbstractNodeRemarkNodeTagNodeTextNode等。

3.4org.htmlparser.tags

    定义了htmlparser的各种tag

3.5org.htmlparser.filters

    定义了htmlparser所提供的各种filter,主要通过extractAllNodesThatMatch (NodeFilter filter)来对html页面指定类型的元素进行过滤,包括:AndFilterCssSelectorNodeFilterHasAttributeFilterHasChildFilterHasParentFilterHasSiblingFilterIsEqualFilterLinkRegexFilterLinkStringFilterNodeClassFilterNotFilterOrFilterRegexFilterStringFilterTagNameFilterXorFilter

3.6org.htmlparser.visitors

   定义了htmlparser所提供的各种visitor,主要通过visitAllNodesWith (NodeVisitor visitor)来对html页面元素进行遍历,包括:HtmlPageLinkFindingVisitorNodeVisitorObjectFindingVisitorStringFindingVisitorTagFindingVisitorTextExtractingVisitorUrlModifyingVisitor

 

3.7org.htmlparser.parserapplications

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

3.8org.htmlparser.tests

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

转载于:https://www.cnblogs.com/answeryi/archive/2009/11/02/1594543.html

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的HtmlParser 简介的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。