夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          package com.roadway.test;

          import java.io.InputStream;
          import java.net.HttpURLConnection;
          import java.net.URL;
          import java.util.regex.Matcher;
          import java.util.regex.Pattern;

          public class TeskSRC {
              
          public String getHtmlCode(String httpUrl) {
                  String htmlCode 
          = "";
                  
          try {
                      InputStream in;
                      URL url 
          = new java.net.URL(httpUrl);
                      HttpURLConnection connection 
          = (HttpURLConnection) url
                              .openConnection();
                      connection 
          = (HttpURLConnection) url.openConnection();
                      connection.setRequestProperty(
          "User-Agent""Mozilla/4.0");
                      connection.connect();
                      in 
          = connection.getInputStream();
                      
          byte[] buffer = new byte[512];
                      
          int length = -1;
                      
          while((length = in.read(buffer,0,512)) != -1){
                          htmlCode 
          += new String(buffer,0,length);
                      }
                  } 
          catch (Exception e) {
                  }
                  
          if(htmlCode == null){
                      
          return "";
                  }
                  
          return htmlCode;
              }
              
          public static void main(String[] args){
                  TeskSRC ts 
          = new TeskSRC();
                  String searchImgReg 
          = "(?x)(src|SRC|background|BACKGROUND)=('|\")(http://([\\w-]+\\.)+[\\w-]+(:[0-9]+)*(/[\\w-]+)*(/[\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
                  String content = ts.getHtmlCode("http://www.163.com");
                  Pattern pattern 
          = Pattern.compile(searchImgReg);
                  Matcher matcher 
          = pattern.matcher(content);
                  
          while(matcher.find()){
                      System.out.println(matcher.group(
          3));
                  }
                  
          //searchImgReg  = "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
              }
          }
          posted on 2008-04-30 10:58 HUIKK 閱讀(3516) 評論(3)  編輯  收藏 所屬分類: Regular Exp

          評論

          # re: 正則表達式 抓取網頁面上所有圖片 2008-10-24 10:33 HenryFour
          這個我以前實現過一個類似功能的, 不過是腳本(windows下用gnu win32)
          grep -o "images/.*\.\(\(jpg\)\|\(gif\)\)" a.css | xargs -n1 echo http://www.haoting.com | tr " " "/" > pic.txt
          wget -i pic.txt

          ps: 用 java 實現時, 如果用多線程能不能提高效率?
          我以前寫過一個下載一個網站的所有內容(就是給定一個 URI 下的所有子 URI 網頁和圖片等), 但是用多線程實現時發現在線程稍微多點-比如20個)時就會導致很多網頁下載到一般就沒了, 很郁悶啊  回復  更多評論
            

          # re: 正則表達式 抓取網頁面上所有圖片[未登錄] 2011-10-22 18:43 huang
          我愛你,lz,我寫了一晚上的正則表達式還沒你的好用。  回復  更多評論
            

          # re: 正則表達式 抓取網頁面上所有圖片 2013-11-28 15:07 find you!
          贊!!!!  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 伊宁市| 洪湖市| 墨脱县| 闸北区| 巢湖市| 普安县| 伊通| 阜康市| 宜川县| 江华| 南川市| 陆河县| 遂昌县| 凌源市| 合阳县| 雷州市| 甘谷县| 镇巴县| 崇州市| 桂阳县| 西峡县| 新昌县| 治多县| 古蔺县| 绥化市| 五原县| 阳朔县| 土默特左旗| 乡宁县| 道孚县| 乌拉特中旗| 太白县| 横峰县| 康定县| 禄劝| 淮阳县| 开平市| 当雄县| 景洪市| 安康市| 镇原县|