Posted on 2013-04-03 16:40
圣騎士武 閱讀(179)
評(píng)論(0) 編輯 收藏
htmlparser
目錄
簡(jiǎn)介htmlparser基本功能htmlparser常用代碼
編輯本段簡(jiǎn)介
htmlparser是一個(gè)純的java寫的html解析的庫,它不依賴于其它的java庫文件,主要用于改造或
提取html。它能超高速解析html,而且不會(huì)出錯(cuò)。現(xiàn)在htmlparser最新版本為2.0。
毫不夸張地說,htmlparser就是目前最好的html解析和分析的工具。
無論你是想抓取網(wǎng)頁數(shù)據(jù)還是改造html的內(nèi)容,用了htmlparser絕對(duì)會(huì)忍不住稱贊。
編輯本段htmlparser基本功能
1. 信息提取
· 文本信息抽取,例如對(duì)HTML進(jìn)行有效信息搜索
· 鏈接提取,用于自動(dòng)給頁面的鏈接文本加上鏈接的標(biāo)簽
· 資源提取,例如對(duì)一些圖片、聲音的資源的處理
· 鏈接檢查,用于檢查HTML中的鏈接是否有效
· 頁面內(nèi)容的監(jiān)控
2. 信息轉(zhuǎn)換
· 鏈接重寫,用于修改頁面中的所有超鏈接
· 網(wǎng)頁內(nèi)容拷貝,用于將網(wǎng)頁內(nèi)容保存到本地
· 內(nèi)容檢驗(yàn),可以用來過濾網(wǎng)頁上一些令人不愉快的字詞
· HTML信息清洗,把本來亂七八糟的HTML信息格式化
· 轉(zhuǎn)成XML格式數(shù)據(jù)
編輯本段htmlparser常用代碼
取得一段html代碼里面所有的鏈接C#版本,java版本類似:
string htmlcode = "
AAA" + ...... + "";
Parser parser = Parser.CreateParser(htmlcode, "GBK");
HtmlPage page = new HtmlPage(parser);
try
{ parser.VisitAllNodesWith(page);}
catch (ParserException e1)
{ e1 = null;}
NodeList nodelist = page.Body;
NodeFilter filter = new TagNameFilter("A");
nodelist = nodelist.ExtractAllNodesThatMatch(filter, true);
for (int i = 0; i < nodelist.Size(); i++)
{
LinkTag link=(LinkTag) nodelist.ElementAt(i);
System.Console.Write(link.GetAttribute("href") + "\n");
}