<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    風行天下

    JAVA太極
    posts - 4, comments - 10, trackbacks - 0, articles - 55
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    HTMLParser 過濾分析

    Posted on 2005-04-04 11:24 風太少 閱讀(1380) 評論(0)  編輯  收藏
    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 名稱
    
    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 了, 他的程序步驟就是
    1. 先產生一個 Parser 連結到 URL
    2. 設定你要下載的模式 vistor ( 可以使用內建的或自己開發 )
    3. parser 注冊一個 scanner
    4. 真正去 parser 產生數據返回 array 給 node
    5. 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 的差異就是在這吧 ~~~~~~~

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 7x7x7x免费在线观看| 日本高清免费中文在线看| 无码一区二区三区免费| 亚洲国产精华液网站w| 三年片免费高清版| 亚洲国产精品嫩草影院在线观看 | 国产免费阿v精品视频网址| 亚洲真人日本在线| 中文字幕免费在线视频| 亚洲AV无码国产丝袜在线观看| 久久久久免费精品国产小说| 亚洲一区二区中文| 在线观看AV片永久免费| 亚洲AV无码一区二区大桥未久 | 37pao成人国产永久免费视频 | 亚洲成人一区二区| 美女网站在线观看视频免费的| 亚洲成a人片在线观看无码 | 亚洲日韩中文字幕天堂不卡 | 99久久久精品免费观看国产| 亚洲 日韩经典 中文字幕| 国产高清在线免费| 一区在线免费观看| 内射干少妇亚洲69XXX| 免费AA片少妇人AA片直播| 麻豆亚洲AV成人无码久久精品 | 日韩在线视频免费| 亚洲AV无码久久精品色欲| 免费观看成人毛片a片2008| 青青草97国产精品免费观看| 亚洲成A人片在线观看无码不卡| 国产成人免费网站| 黄页网址在线免费观看| 伊人久久综在合线亚洲2019| 免费高清在线爱做视频| 久久WWW免费人成—看片| 亚洲乱码一二三四五六区| 亚洲国产黄在线观看| 免费观看国产网址你懂的| 一级毛片在线免费播放| 亚洲av无码一区二区三区天堂古代 |