首页 > 其他分享 >htmlparser关键包结构,类说明

htmlparser关键包结构,类说明

时间:2023-05-15 20:32:15浏览次数:42  
标签:NodeFilter Parser parser 说明 htmlparser 关键 new org

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);
}

 

 

 

标签:NodeFilter,Parser,parser,说明,htmlparser,关键,new,org
From: https://blog.51cto.com/u_6687237/6280806

相关文章

  • MATLAB代码:基于遗传算法的电动汽车有序充放电优化 关键词:遗传
    MATLAB代码:基于遗传算法的电动汽车有序充放电优化关键词:遗传算法电动汽车有序充电优化调度参考文档:《精英自适应混合遗传算法及其实现_江建》算法部分;电动汽车建模部分相关文档太多,自行搜索参考即可;仿真平台:MATLAB主要内容:代码主要做的是利用遗传算法对电动汽车有序充电进行......
  • 共享储能电站 工业用户图 日前优化经济调度 关键词:优
    共享储能电站工业用户图日前优化经济调度关键词:优化调度共享储能日前优化经济调度文章提出一种基于共享储能电站的工业用户日前优化经济调度方法。首先提出共享储能电站的概念,分析其商业运营模式。然后将共享储能电站应用到工业用户经济优化调度中,通过协调各用户使用共享......
  • 三菱PlC程序大型项目QCPU+QD77MS16 项目说明如下: 1.宝贝包含一套完
    三菱PlC程序大型项目QCPU+QD77MS16项目说明如下:1.宝贝包含一套完整的电气开发系统资料(包含plc程序,触摸屏程序,伺服模块设置程序,程序开发地址规划表)2.这套开发程序是用一套完美的程序结构进行设计,掌握这套程序结构后就可以开发各种自动化设备控制程序3.提供的这套三菱plc程序开发地......
  • MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略 关键
    MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略关键词:纳什谈判合作博弈微网电转气-碳捕集P2P电能交易交易参考文档:《基于非对称纳什谈判的多微网电能共享运行优化策略》完美复现仿真平台:MATLABCPLEX+MOSEK/IPOPT主要内容:该代码主要做的是微网间基于非对称......
  • MATLAB代码:基于SOE算法的多时段随机配电网重构方法 关键词:配电网重构
    MATLAB代码:基于SOE算法的多时段随机配电网重构方法关键词:配电网重构SOE算法多时段随机重构参考文档:《SwitchOpeningandExchangeMethodforStochasticDistributionNetworkReconfiguration》完全复现仿真平台:MATLAB+CPLEX/gurobi平台优势:代码具有一定的深度和创新性,注......
  • 关键词:储能容量优化 储能配置 微网 编程语言:matlab
    关键词:储能容量优化储能配置微网编程语言:matlab主题:基于混合整数规划方法的微网电池储能容量优化配置主要内容:本代码目的为实现微电网内电池容量的优化配置,目标函数为配置过程中整体的运行成本最小或者经济效益最大化,约束条件则包括相应的运行约束以及能量平衡约束等等,最后将......
  • 何谓分布式体系结构,举例说明
    分布式体系结构可以看作是将一个大型系统或应用程序分解成多个小的、相互独立的子系统或模块,并将这些子系统或模块部署在不同的计算节点上,通过网络连接起来共同完成整个系统或应用程序的功能。举例来说,一个电子商务平台可以被拆分成多个子系统或模块,如用户认证、商品管理......
  • 基于二阶锥规划的主动配电网动态最优潮流求解 关键词:配电网优化
    基于二阶锥规划的主动配电网动态最优潮流求解关键词:配电网优化二阶锥优化动态优化最优潮流仿真代码:MATLABYALMIP+CPLEX优势:代码注释详实,适合参考学习!主要内容:代码主要主要研究的配电网优化,具体为配电网中的最优潮流优化,考虑了风电、CB、SVG以及OLTC等设备,更加具有代表性,同时......
  • MATLAB代码:考虑V2G的光储充一体化微网多目标优化调度策略 关键词
    MATLAB代码:考虑V2G的光储充一体化微网多目标优化调度策略关键词:光储充微网电电汽车V2G多目标优化蓄电池优化调度参考文档:《光伏微网下考虑V2G补偿蓄电池容量的双目标优化调度策略》仿真平台:MATLAB主要内容:[钉子][钉子]过建立光伏微网中以经济性和并网负荷波动率为双目标的蓄......
  • MATLAB代码:基于粒子群算法的储能优化配置代码 关键词
    MATLAB代码:基于粒子群算法的储能优化配置代码关键词:储能优化配置粒子群储能充放电优化主要内容:建立了储能系统的成本模型,包含运行维护成本以及容量配置成本,然后以该成本函数最小为目标函数,经过粒子群算法求解出其最优运行计划,并通过其运行计划最终确定储能容量配置的大小,求解......