亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP封裝的遠程抓取網站圖片并保存功能類

2024-05-05 00:04:23
字體:
來源:轉載
供稿:網友

本文實例講述了PHP封裝的遠程抓取網站圖片并保存功能類。分享給大家供大家參考,具體如下:

<?php/** * 一個用于抓取圖片的類 * * @package default * @author WuJunwei */class download_image{  public $save_path;         //抓取圖片的保存地址  //抓取圖片的大小限制(單位:字節) 只抓比size比這個限制大的圖片  public $img_size=0;  //定義一個靜態數組,用于記錄曾經抓取過的的超鏈接地址,避免重復抓取  public static $a_url_arr=array();  /**   * @param String $save_path  抓取圖片的保存地址   * @param Int  $img_size   抓取圖片的保存地址   */  public function __construct($save_path,$img_size)  {    $this->save_path=$save_path;    $this->img_size=$img_size;  }  /**   * 遞歸下載抓取首頁及其子頁面圖片的方法 ( recursive 遞歸)   *   * @param  String $capture_url 用于抓取圖片的網址   *   */  public function recursive_download_images($capture_url)  {    if (!in_array($capture_url,self::$a_url_arr))  //沒抓取過    {      self::$a_url_arr[]=$capture_url;  //計入靜態數組    } else  //抓取過,直接退出函數    {      return;    }    $this->download_current_page_images($capture_url); //下載當前頁面的所有圖片    //用@屏蔽掉因為抓取地址無法讀取導致的warning錯誤    $content=@file_get_contents($capture_url);    //匹配a標簽href屬性中?之前部分的正則    $a_pattern = "|<a[^>]+href=['/" ]?([^ '/"?]+)['/" >]|U";    preg_match_all($a_pattern, $content, $a_out, PREG_SET_ORDER);    $tmp_arr=array(); //定義一個數組,用于存放當前循環下抓取圖片的超鏈接地址    foreach ($a_out as $k => $v)    {      /**       * 去除超鏈接中的 空'','#','/'和重復值       * 1: 超鏈接地址的值 不能等于當前抓取頁面的url, 否則會陷入死循環       * 2: 超鏈接為''或'#','/'也是本頁面,這樣也會陷入死循環,       * 3: 有時一個超連接地址在一個網頁中會重復出現多次,如果不去除,會對一個子頁面進行重復下載)       */      if ( $v[1] && !in_array($v[1],self::$a_url_arr) &&!in_array($v[1],array('#','/',$capture_url) ) )      {        $tmp_arr[]=$v[1];      }    }    foreach ($tmp_arr as $k => $v)    {      //超鏈接路徑地址      if ( strpos($v, 'http://')!==false ) //如果url包含http://,可以直接訪問      {        $a_url = $v;      }else  //否則證明是相對地址, 需要重新拼湊超鏈接的訪問地址      {        $domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);        $a_url=$domain_url.$v;      }      $this->recursive_download_images($a_url);    }  }  /**   * 下載當前網頁下的所有圖片   *   * @param  String $capture_url 用于抓取圖片的網頁地址   * @return Array  當前網頁上所有圖片img標簽url地址的一個數組   */  public function download_current_page_images($capture_url)  {    $content=@file_get_contents($capture_url);  //屏蔽warning錯誤    //匹配img標簽src屬性中?之前部分的正則    $img_pattern = "|<img[^>]+src=['/" ]?([^ '/"?]+)['/" >]|U";    preg_match_all($img_pattern, $content, $img_out, PREG_SET_ORDER);    $photo_num = count($img_out);    //匹配到的圖片數量    echo '<h1>'.$capture_url . "共找到 " . $photo_num . " 張圖片</h1>";    foreach ($img_out as $k => $v)    {      $this->save_one_img($capture_url,$v[1]);    }  }  /**   * 保存單個圖片的方法   *   * @param String $capture_url  用于抓取圖片的網頁地址   * @param String $img_url    需要保存的圖片的url   *   */  public function save_one_img($capture_url,$img_url)  {    //圖片路徑地址    if ( strpos($img_url, 'http://')!==false )    {      // $img_url = $img_url;    }else    {      $domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);      $img_url=$domain_url.$img_url;    }    $pathinfo = pathinfo($img_url);  //獲取圖片路徑信息    $pic_name=$pathinfo['basename'];  //獲取圖片的名字    if (file_exists($this->save_path.$pic_name)) //如果圖片存在,證明已經被抓取過,退出函數    {      echo $img_url . '<span style="color:red;margin-left:80px">該圖片已經抓取過!</span><br/>';      return;    }    //將圖片內容讀入一個字符串    $img_data = @file_get_contents($img_url);  //屏蔽掉因為圖片地址無法讀取導致的warning錯誤    if ( strlen($img_data) > $this->img_size )  //下載size比限制大的圖片    {      $img_size = file_put_contents($this->save_path . $pic_name, $img_data);      if ($img_size)      {        echo $img_url . '<span style="color:green;margin-left:80px">圖片保存成功!</span><br/>';      } else      {        echo $img_url . '<span style="color:red;margin-left:80px">圖片保存失敗!</span><br/>';      }    } else    {      echo $img_url . '<span style="color:red;margin-left:80px">圖片讀取失敗!</span><br/>';    }  }} // ENDset_time_limit(120);   //設置腳本的最大執行時間 根據情況設置$download_img=new download_image('E:/images/',0);  //實例化下載圖片對象$download_img->recursive_download_images('http://www.oschina.net/');   //遞歸抓取圖片方法//$download_img->download_current_page_images($_POST['capture_url']);   //只抓取當前頁面圖片方法?>

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品欧美日韩久久| 欧美日韩国产在线看| 福利一区福利二区微拍刺激| 97久久精品视频| 国产91在线播放| 91亚洲精品一区二区| 亚洲美女久久久| 成人伊人精品色xxxx视频| 中文亚洲视频在线| 欧美大胆在线视频| 亚洲成人黄色在线| 国产视频亚洲视频| 精品国偷自产在线视频99| 欧美成人手机在线| 亚洲男人天天操| 久久免费视频观看| 成人免费高清完整版在线观看| 精品国产一区二区三区久久狼5月| 欧美激情第99页| 亚洲精品福利资源站| 91超碰中文字幕久久精品| 久久69精品久久久久久国产越南| 久久精品视频中文字幕| 国产精品老女人精品视频| 亚洲bt欧美bt日本bt| 富二代精品短视频| 亚洲第一色在线| 欧美专区日韩视频| 亚洲美女在线观看| 亚洲国产毛片完整版| 欧美成人免费网| 高清亚洲成在人网站天堂| 草民午夜欧美限制a级福利片| 久久777国产线看观看精品| 97人人爽人人喊人人模波多| 久久久久久久久亚洲| 日本精品中文字幕| 国产精品网站大全| 在线观看日韩www视频免费| 欧美电影免费观看高清| 性欧美暴力猛交69hd| 国产精品成人一区二区三区吃奶| 精品国产欧美一区二区三区成人| 欧美日韩亚洲国产一区| 国产美女直播视频一区| 久久久精品国产网站| 不卡av电影在线观看| 95av在线视频| 精品视频在线观看日韩| 久久亚洲精品中文字幕冲田杏梨| 黄色一区二区在线| 欧美日韩国产一区在线| 欧美国产视频日韩| 97超碰国产精品女人人人爽| 中文字幕亚洲第一| 精品色蜜蜜精品视频在线观看| 亚洲第一视频网站| 美女999久久久精品视频| 国产91在线播放精品91| 在线免费看av不卡| 国产一区二区视频在线观看| 欧美精品18videos性欧美| 亚洲美女黄色片| 精品国产区一区二区三区在线观看| 久久精品久久久久久国产 免费| 日韩欧美一区二区三区久久| 95av在线视频| 精品一区二区三区四区在线| 色偷偷888欧美精品久久久| 久久久久女教师免费一区| 久久久久久亚洲精品| 国产最新精品视频| 国产成人精品久久亚洲高清不卡| 久久中文字幕国产| 日韩毛片在线看| 色综合视频网站| 久久亚洲影音av资源网| 久久国产精品久久久久久久久久| 91久久久久久| 欧美午夜无遮挡| 日韩美女在线播放| 国产成人精品视频| 中文字幕久热精品在线视频| 日韩国产精品视频| 成人久久久久久| 日韩美女在线观看一区| 久久夜色精品国产| 亚洲高清一二三区| 亚洲毛片在线观看.| 57pao成人永久免费视频| 久久国产精品久久国产精品| www.日韩av.com| zzjj国产精品一区二区| 国内免费精品永久在线视频| 日本中文字幕不卡免费| 久久国产精品电影| 国产精品极品美女在线观看免费| 中文字幕免费国产精品| 欧美极品美女视频网站在线观看免费| 97涩涩爰在线观看亚洲| 欧美黄色三级网站| 国产欧美亚洲精品| 国产精品免费观看在线| 奇米影视亚洲狠狠色| 中文字幕亚洲一区二区三区五十路| 国产精品一区二区三区久久久| 97在线精品国自产拍中文| 久久久久久网站| 久久久女人电视剧免费播放下载| 日韩成人在线视频观看| 国产一区二中文字幕在线看| 国产精品亚洲精品| 亚洲第一区在线观看| 亚洲韩国日本中文字幕| 久久久精品国产亚洲| 久久久在线免费观看| 亚洲免费一在线| 亚洲三级av在线| 久久精品国产亚洲精品| 国产午夜精品全部视频播放| 欧美激情精品在线| 一区二区三区动漫| 日韩欧美主播在线| 久久久成人精品视频| 国产日韩视频在线观看| 97国产在线观看| 亚洲欧美日韩网| 亚洲欧美国产一本综合首页| 日韩av123| 亲爱的老师9免费观看全集电视剧| 91av在线不卡| 国产99视频在线观看| 自拍偷拍亚洲在线| 国产啪精品视频网站| 亚洲黄色免费三级| 亚洲free性xxxx护士hd| 中文字幕综合在线| 欧美在线一级va免费观看| 欧美性少妇18aaaa视频| 尤物99国产成人精品视频| 欧美日韩xxxxx| 国产97色在线|日韩| 成人午夜一级二级三级| 色av中文字幕一区| 国a精品视频大全| 免费91在线视频| 国产精品久久久久av| 亚洲福利影片在线| 性色av一区二区咪爱| 国模精品系列视频| 69影院欧美专区视频| 国产中文欧美精品| 欧美性猛交xxxx免费看| 欧美成人精品h版在线观看| 琪琪亚洲精品午夜在线| 亚洲图片欧洲图片av| 欧美午夜www高清视频| 九九精品视频在线观看| 欧美午夜激情小视频| 国产精品成人v| 中文字幕亚洲综合| 久久琪琪电影院| 久久久久久九九九| 亚洲色图第一页|