• HtmlParser学习笔记(一)-- 创建Parser对象


     首先 ,介绍下HTMLParser的核心类,org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。主要的构造函数如下:

    public Parser ();  
    public Parser (String resource) throws ParserException;  
    public Parser (String resource, ParserFeedback feedback) throws ParserException;  
    public Parser (URLConnection connection) throws ParserException;  
    public Parser (URLConnection connection, ParserFeedback fb) throws ParserException;  
    public Parser (Lexer lexer);  
    public Parser (Lexer lexer, ParserFeedback fb);  
    

      

    public static Parser createParser (String html, String charset);  
    

      

    常见的创建Parser的方法, 如下:

       方法一:.通过url提取网络上的网页

    //使用public Parser();构造函数  
    Parser parser = new Parser();  
    parser.setURL("http://www.yahoo.com.cn");  
      
    //使用public Parser (URLConnection connection) throws ParserException;构造函数  
    Parser parser = new Parser(  
                  (HttpURLConnection) (new URL("http://www.baidu.com")).openConnection()  
                        );  
      
    org.htmlparser.http.ConnectionManager manager = org.htmlparser.lexer.Page.getConnectionManager();  
    Parser parser = new Parser(manager.openConnection("http://www.baidu.com"));  
    parser.setEncoding("GB2312");  
    

       方法二: 提取本地网页文件 (通过读文件把网页文件转化成字符串)

    /使用静态方法  
    Parser parser=Parser.createParser(html,charset);  
    

    Node中包含的方法有几类:
    对于树型结构进行遍历的函数,这些函数最容易理解:
    Node getParent ():取得父节点
    NodeList getChildren ():取得子节点的列表
    Node getFirstChild ():取得第一个子节点
    Node getLastChild ():取得最后一个子节点
    Node getPreviousSibling ():取得前一个兄弟(不好意思,英文是兄弟姐妹,直译太麻烦而且不符合习惯,对不起女同胞了)
    Node getNextSibling ():取得下一个兄弟节点
    取得Node内容的函数
    String getText ():取得文本
    String toPlainTextString():取得纯文本信息。
    String toHtml () :取得HTML信息(原始HTML)
    String toHtml (boolean verbatim):取得HTML信息(原始HTML)
    String toString ():取得字符串信息(原始HTML)
    Page getPage ():取得这个Node对应的Page对象
    int getStartPosition ():取得这个Node在HTML页面中的起始位置
    int getEndPosition ():取得这个Node在HTML页面中的结束位置
    用于Filter过滤的函数:
    void collectInto (NodeList list, NodeFilter filter):基于filter的条件对于这个节点进行过滤,符合条件的节点放到list中。
    用于Visitor遍历的函数:
    void accept (NodeVisitor visitor):对这个Node应用visitor
    用于修改内容的函数,这类用得比较少
    void setPage (Page page):设置这个Node对应的Page对象
    void setText (String text):设置文本
    void setChildren (NodeList children):设置子节点列表
    其他函数
    void doSemanticAction ():执行这个Node对应的操作(只有少数Tag有对应的操作)
    Object clone ():接口Clone的抽象函数。

  • 相关阅读:
    C++内嵌汇编代码,简单文件加密
    汇编查看StackFrame栈帧
    cdecl和stdcall调用约定-汇编演示
    汇编获取键盘输入,及改变文本颜色
    XLAT转码:以DS:【BX+AL】为地址,提取存储器中的一个字节再送入AL
    应中DOS中断显示字符串(摘自《汇编语言》王爽)
    汇编显示彩色字
    汇编ASCII大小写转换(字符串长度$的用法)
    SQLite.net发布后找不到"SQLite.Interop.dll"的问题
    linux使用shutdown.sh命令关闭不完tomcat进程的处理方法
  • 原文地址:https://www.cnblogs.com/zuhaoran/p/6953496.html
Copyright © 2020-2023  润新知