夢(mèng)幻之旅

          DEBUG - 天道酬勤

             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 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 閱讀(3517) 評(píng)論(3)  編輯  收藏 所屬分類: Regular Exp

          評(píng)論

          # re: 正則表達(dá)式 抓取網(wǎng)頁(yè)面上所有圖片 2008-10-24 10:33 HenryFour
          這個(gè)我以前實(shí)現(xiàn)過(guò)一個(gè)類似功能的, 不過(guò)是腳本(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 實(shí)現(xiàn)時(shí), 如果用多線程能不能提高效率?
          我以前寫過(guò)一個(gè)下載一個(gè)網(wǎng)站的所有內(nèi)容(就是給定一個(gè) URI 下的所有子 URI 網(wǎng)頁(yè)和圖片等), 但是用多線程實(shí)現(xiàn)時(shí)發(fā)現(xiàn)在線程稍微多點(diǎn)-比如20個(gè))時(shí)就會(huì)導(dǎo)致很多網(wǎng)頁(yè)下載到一般就沒(méi)了, 很郁悶啊  回復(fù)  更多評(píng)論
            

          # re: 正則表達(dá)式 抓取網(wǎng)頁(yè)面上所有圖片[未登錄](méi) 2011-10-22 18:43 huang
          我愛(ài)你,lz,我寫了一晚上的正則表達(dá)式還沒(méi)你的好用。  回復(fù)  更多評(píng)論
            

          # re: 正則表達(dá)式 抓取網(wǎng)頁(yè)面上所有圖片 2013-11-28 15:07 find you!
          贊!!!!  回復(fù)  更多評(píng)論
            


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 海口市| 长沙县| 黑河市| 绿春县| 上饶县| 阿坝| 华容县| 大足县| 广平县| 什邡市| 喀喇沁旗| 汕头市| 栾川县| 韶山市| 渑池县| 平和县| 磐安县| 文成县| 武城县| 霍山县| 富蕴县| 海城市| 寻甸| 若尔盖县| 临高县| 玉林市| 息烽县| 姜堰市| 海伦市| 普兰县| 大丰市| 房山区| 洛宁县| 仁寿县| 横山县| 滦南县| 冀州市| 光山县| 江北区| 布拖县| 谢通门县|