標籤: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對象