<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    HTMLParser 過濾分析

    Posted on 2005-04-04 11:24 風太少 閱讀(1380) 評論(0)  編輯  收藏
    SECTION 01 下載安裝

    如果老板今天要叫你寫一個小程序, 去抓取某個網(wǎng)頁的所有 image, 該怎么做呢, 你必須先把所有的 image url 先 parse 出來, 接著一個一個圖片下載下來, 那么 image url 該如何 parse , 這個就是 htmlparser 的功能了, 當然, 應(yīng)用方面非常的廣, 在 xml 成為數(shù)據(jù)交換還沒有普及化時, 利用其它網(wǎng)站的資料來加強自己網(wǎng)站的功能, 也是一件很重要的工作, 此外, 請注重知識產(chǎn)權(quán)


    目前 realse 的版本是 1.3 Htmlparser 下載解壓縮后該目錄有 src.zip 是 source code.


    SECTION 02 范例

    因為 docs\docs 提供的范例有一點版本上的錯誤, method 名稱可能不太正確, 不過觀念是一樣的, 可能要多測試一下, 最好有 IDE 去設(shè)置 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 執(zhí)行, 就可以列出所有的 imageName 了, 他的程序步驟就是
    1. 先產(chǎn)生一個 Parser 連結(jié)到 URL
    2. 設(shè)定你要下載的模式 vistor ( 可以使用內(nèi)建的或自己開發(fā) )
    3. parser 注冊一個 scanner
    4. 真正去 parser 產(chǎn)生數(shù)據(jù)返回 array 給 node
    5. println 數(shù)據(jù)



    SECTION 03 JavaBeans

    執(zhí)行方式
    cmd>java -classpath htmlparser.jar org.htmlparser.beans.BeanyBaby

    他的 BeanyBaby.class 在 htmlparser.jar 中, 你可以參考 org.htmlparser.beans.* 的所有程序, 如果你要連結(jié)到其它網(wǎng)頁, 你可以修改 bb.setURL("http://whatUwannaGo");
    
        public static void main (String[] args)
        {
            BeanyBaby bb = new BeanyBaby ();
            bb.show ();
            bb.setURL ("http://www.netbeans.org");
        }
    



    SECTION 03 后記

    或許你很幸福完全不會遇到要轉(zhuǎn) html 的時候, 只是我以前為了parse html 用 mfc 寫了很久, 現(xiàn)在利用 這個 lib 所花的功就只有把這些 documentum 讀一讀, 范例看一看, 參考 api doc 實現(xiàn)就好了, 真不知道 M$ 是否有這種 opensource support C#, 或許 .NET 和 JAVA 的差異就是在這吧 ~~~~~~~

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 99精品视频在线观看免费专区| 国产亚洲高清不卡在线观看| 国产又大又长又粗又硬的免费视频| 亚洲18在线天美| 亚洲日本韩国在线| 亚洲精品免费在线观看| 亚洲人成影院77777| 亚洲精品国产免费| 亚洲国产精品一区二区成人片国内| 久久精品亚洲中文字幕无码网站| 亚洲日韩在线中文字幕第一页| 亚洲精品无码永久中文字幕| 亚洲性猛交xx乱| 一区二区三区免费在线观看| 日韩国产欧美亚洲v片| 精品视频免费在线| 99精品视频免费观看| 免费无码黄十八禁网站在线观看 | 亚洲一区二区免费视频| 麻豆69堂免费视频| 国产h视频在线观看免费| ZZIJZZIJ亚洲日本少妇JIZJIZ| 老色鬼久久亚洲AV综合| 真正全免费视频a毛片| 18禁免费无码无遮挡不卡网站| 日本高清在线免费| 在线视频免费观看爽爽爽| 在线a亚洲v天堂网2018| 亚洲国产精品成人综合色在线婷婷| 黄色一级毛片免费看| 色婷婷7777免费视频在线观看| 久久精品国产亚洲7777| 精品国产日韩久久亚洲| 久久一区二区三区免费播放| 亚洲А∨精品天堂在线| 亚洲色www永久网站| 国产亚洲sss在线播放| 亚洲国产成人无码AV在线| 免费看又黄又无码的网站| 亚洲片国产一区一级在线观看| 国产亚洲av片在线观看播放|