HtmlParser學習筆記(一)-- 建立Parser對象

來源:互聯網
上載者:User

標籤:exception   第一個   plain   設定   習慣   網路   throw   介面   .com   

 首先 ,介紹下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的抽象函數。

HtmlParser學習筆記(一)-- 建立Parser對象

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.