<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 的差異就是在這吧 ~~~~~~~

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产成人爱av在线播放| 老司机69精品成免费视频| 国产精品视频免费| 亚洲视频在线观看地址| 6080午夜一级毛片免费看| 亚洲酒色1314狠狠做| 久久免费福利视频| 精品日韩亚洲AV无码一区二区三区| 久久免费精品视频| 亚洲天堂中文资源| 国产大片免费网站不卡美女 | 色久悠悠婷婷综合在线亚洲| jyzzjyzz国产免费观看| 国产福利电影一区二区三区,亚洲国模精品一区 | 成人a免费α片在线视频网站| 亚洲中文字幕无码av在线| 成年人免费的视频| 亚洲成a∨人片在无码2023| 四虎永久免费地址在线观看| 免费国产高清毛不卡片基地| 亚洲熟妇无码八AV在线播放| 久久永久免费人妻精品| 亚洲成a人片在线观看精品| 日本特黄特色免费大片| caoporn成人免费公开| 亚洲欧洲日韩不卡| 国产黄色片在线免费观看| 一级片在线免费看| 亚洲在成人网在线看| 啊灬啊灬别停啊灬用力啊免费看| 国产精品偷伦视频免费观看了| 久久久久亚洲AV片无码下载蜜桃 | 18禁美女裸体免费网站 | 2020久久精品亚洲热综合一本| 国产精品久免费的黄网站| 97国免费在线视频| 亚洲乱码中文字幕小综合| 亚洲国产精品自产在线播放| 1000部拍拍拍18勿入免费视频下载 | 国产精品亚洲四区在线观看 | 四虎成人精品在永久免费|