SECTION 01 下載安裝
如果老板今天要叫你寫一個小程序, 去抓取某個網頁的所有 image, 該怎么做呢, 你必須先把所有的 image url 先 parse 出來, 接著一個一個圖片下載下來, 那么 image url 該如何 parse , 這個就是 htmlparser 的功能了, 當然, 應用方面非常的廣, 在 xml 成為數據交換還沒有普及化時, 利用其它網站的資料來加強自己網站的功能, 也是一件很重要的工作, 此外, 請注重知識產權
目前 realse 的版本是 1.3 Htmlparser 下載解壓縮后該目錄有 src.zip 是 source code.
SECTION 02 范例
因為 docs\docs 提供的范例有一點版本上的錯誤, method 名稱可能不太正確, 不過觀念是一樣的, 可能要多測試一下, 最好有 IDE 去設置 lib (htmlparser.jar) 接著自動帶出 Method Name 來修正這個錯誤
我改了幾個正確的范例如下
AllNodeImageExtractor.java 下載該 URL 所有的 image 名稱
SECTION 03 JavaBeans
執行方式
cmd>java -classpath htmlparser.jar org.htmlparser.beans.BeanyBaby
他的 BeanyBaby.class 在 htmlparser.jar 中, 你可以參考 org.htmlparser.beans.* 的所有程序, 如果你要連結到其它網頁, 你可以修改 bb.setURL("http://whatUwannaGo");
SECTION 03 后記
或許你很幸福完全不會遇到要轉 html 的時候, 只是我以前為了parse html 用 mfc 寫了很久, 現在利用 這個 lib 所花的功就只有把這些 documentum 讀一讀, 范例看一看, 參考 api doc 實現就好了, 真不知道 M$ 是否有這種 opensource support C#, 或許 .NET 和 JAVA 的差異就是在這吧 ~~~~~~~
如果老板今天要叫你寫一個小程序, 去抓取某個網頁的所有 image, 該怎么做呢, 你必須先把所有的 image url 先 parse 出來, 接著一個一個圖片下載下來, 那么 image url 該如何 parse , 這個就是 htmlparser 的功能了, 當然, 應用方面非常的廣, 在 xml 成為數據交換還沒有普及化時, 利用其它網站的資料來加強自己網站的功能, 也是一件很重要的工作, 此外, 請注重知識產權
目前 realse 的版本是 1.3 Htmlparser 下載解壓縮后該目錄有 src.zip 是 source code.
SECTION 02 范例
因為 docs\docs 提供的范例有一點版本上的錯誤, method 名稱可能不太正確, 不過觀念是一樣的, 可能要多測試一下, 最好有 IDE 去設置 lib (htmlparser.jar) 接著自動帶出 Method Name 來修正這個錯誤
我改了幾個正確的范例如下
AllNodeImageExtractor.java 下載該 URL 所有的 image 名稱
import org.htmlparser.*;
import org.htmlparser.visitors.*;
import org.htmlparser.util.*;
import org.htmlparser.tags.*;
/**
* LinkExtractor extracts all the links from the given webpage
* and prints them on standard output.
*/
public class AllNodeImageExtractor {
public static void main(String[] args) {
try {
Parser parser = new Parser("http://www.softleader.com.tw/companyIntro.screen");
ObjectFindingVisitor visitor =
new ObjectFindingVisitor(ImageTag.class,true);
parser.registerScanners();
// Instead of registering all scanners,
// you could also do - parser.addScanner(new ImageScanner(""));
Node [] images = parser.extractAllNodesThatAre(ImageTag.class);
System.out.println(images.length);
for (int i=0;i < images.length;i++) {
ImageTag imageTag = (ImageTag)images[i];
System.out.println(imageTag.getImageURL());
}
}
catch (ParserException ex) {
System.out.println(ex);
}
}
}
這程序非常簡單, javac 編譯完后直接用 java AllNodeImageExtractor 執行, 就可以列出所有的 imageName 了, 他的程序步驟就是
- 先產生一個 Parser 連結到 URL
- 設定你要下載的模式 vistor ( 可以使用內建的或自己開發 )
- parser 注冊一個 scanner
- 真正去 parser 產生數據返回 array 給 node
- println 數據
SECTION 03 JavaBeans
執行方式
cmd>java -classpath htmlparser.jar org.htmlparser.beans.BeanyBaby

他的 BeanyBaby.class 在 htmlparser.jar 中, 你可以參考 org.htmlparser.beans.* 的所有程序, 如果你要連結到其它網頁, 你可以修改 bb.setURL("http://whatUwannaGo");
public static void main (String[] args)
{
BeanyBaby bb = new BeanyBaby ();
bb.show ();
bb.setURL ("http://www.netbeans.org");
}
SECTION 03 后記
或許你很幸福完全不會遇到要轉 html 的時候, 只是我以前為了parse html 用 mfc 寫了很久, 現在利用 這個 lib 所花的功就只有把這些 documentum 讀一讀, 范例看一看, 參考 api doc 實現就好了, 真不知道 M$ 是否有這種 opensource support C#, 或許 .NET 和 JAVA 的差異就是在這吧 ~~~~~~~