<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)航:
     
    主站蜘蛛池模板: 精品熟女少妇av免费久久| 99久久成人国产精品免费| 美女网站免费福利视频| 中文字幕av免费专区| 亚洲天堂中文字幕在线| 有色视频在线观看免费高清在线直播| 国产亚洲福利一区二区免费看| 亚洲国产欧美一区二区三区| 国产免费久久精品| 日本一区二区三区免费高清在线 | 成年女人18级毛片毛片免费观看| 亚洲综合在线成人一区| 国产成人无码免费看视频软件| 国产亚洲精品bv在线观看| 日本免费一区二区三区最新| mm1313亚洲国产精品无码试看| 暖暖免费日本在线中文| 亚洲第一网站免费视频| 欧洲精品成人免费视频在线观看 | www.亚洲色图.com| a视频在线免费观看| 亚洲黄色三级视频| 日韩一级视频免费观看| gogo免费在线观看| 亚洲欧洲日产国码二区首页| 日本特黄a级高清免费大片| 亚洲第一视频在线观看免费| 亚洲天堂男人天堂| 在线观看国产情趣免费视频| a级成人毛片免费视频高清| 国产99在线|亚洲| 亚洲人成人网站在线观看| 一级毛片免费毛片一级毛片免费 | 亚洲一级片免费看| 亚洲视频日韩视频| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 97精品免费视频| 曰批全过程免费视频免费看| 18亚洲男同志videos网站| 四虎免费久久影院| 最近中文字幕完整免费视频ww|