使用php curl扒圖片的簡單一實例

來源:互聯網
上載者:User

最近研究了一下爬蟲相關的一些代碼,可以簡單理解爬蟲其實就是訪問頁面,並將其資訊進行一定的歸納或者處理,達成自己預想的目標的程式,研究了一下後,參考網上的一些代碼,自己封裝了一個訪問url並將上面的img標籤內的圖片儲存下來的php指令碼,話不多說,上代碼

<?php    class getImg {        function __construct($url = 'http://blog.csdn.net/wang_jingxiang/article/details/4864705') {            $ret = $this->setRequest($url);            $total = $this->image($ret);            foreach($total as $pic) {                $this->savePics($pic);            }        }        public function image($url) {            preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/", $url,$matches);//帶引號            //preg_match_all("/<img([^>]*)\ssrc=([^\s>]+)/",$string,$matches);//不帶引號            $matches=array_unique($matches[0]);//去除數組中重複的值            foreach($matches as $key=>$val) {                $matches[$key] = $this->stringSolve($val);            }            return $matches;        }        public function stringSolve($str) {            $pos1 = stripos($str, '"');            $pos2 = stripos($str, '"', $pos1+2);            $str = substr($str, $pos1+1, $pos2-10);            return $str;        }        public function savePics($pic) {            $rt = $this->setRequest($pic);            $fp = fopen('pics'.'/'.md5($pic).'.jpg', 'a');            fwrite($fp, $rt);            fclose($fp);        }        public function setRequest($url) {            $ch = curl_init();            curl_setopt($ch, CURLOPT_URL, $url);            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);            curl_setopt($ch, CURLOPT_HEADER, 0);            $ret = curl_exec($ch);            curl_close($ch);            return $ret;        }    }    $test = new getImg;?>


主要的網路訪問,使用的是php的curl的方法,封裝在了setRequest這個函數中,而另外一個比較重要的是圖片的解析函數,也就是imgae用來解析img標籤,擷取其中的圖片的載入路徑,並最終調用savePics儲存在本地

整個指令碼寫的還是比較簡單的,只是實現了基本的基礎功能,後續進一步拓展做成比較方便的圖片爬蟲的話可以考慮添加html前端代碼,可視化地選擇要扒的網頁的url,同時可以可視地拉取到該頁面所有圖片後篩選圖片並儲存到本地的功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.