例子1:
?php include_once( curl.php /*這個文件要自己配置好*/ header( content-type:text/html;charset=utf8 $pattern_title = / title (.+) //title / //標題匹配 $pattern_code = / tr td p (.+) //p script/ //網頁內容匹配 $url= http://www.freewl.com/freezcm/2011/0413/3185.html //根網址 $DATA_CONTENT = CurlGet($url); $num=preg_match_all($pattern_title, $DATA_CONTENT, $match_title); for($i=0;$i $num;$i++){ echo strlen($match_title[1][$i]). -- .$match_title[1][$i]. br / echo hr / /*$trans = array( = , , br / = 。 $TRANS_CONTENT = strtr($DATA_CONTENT, $trans); echo $TRANS_CONTENT;$DATA_CONTENT=preg_replace( //s(?=/s)/ , , $DATA_CONTENT);//(?=pattern) 正向預查 $DATA_CONTENT=preg_replace( /[/n/r/t]/ , /r/n , $DATA_CONTENT);//回車換行 $DATA_CONTENT=preg_replace( / / , , $DATA_CONTENT);
/*利用正則表達式得到圖片鏈接$pattern_src = / img.*?/ ([^/ ]*(jpg|bmp|jpeg|gif)).*? / */$pattern_src = / img.*?src/=/ (.*/.jpg).*? / //只匹配jpg格式的圖片$num = preg_match_all($pattern_src, $data, $match_src);$arr_src=$match_src[1];//獲得圖片數組//get_name($arr_src);get_name_2($arr_src);echo End!!! br return 0;function get_pic_2($pic_url, $base_site) {//獲取圖片二進制流$data=CurlGet($pic_url);/*利用正則表達式得到圖片鏈接*/$pattern_src = / img.*?/ ([^/ ]*jpg).*? / //只匹配jpg格式的圖片$num = preg_match_all($pattern_src, $data, $match_src);$arr_src=$match_src[1];//獲得圖片數組$arr_src=rev_site($arr_src, $base_site);get_name($arr_src);echo End!!! br return 0;/* 將圖片相對地址改為絕對地址 */function rev_site($site_list, $base_site){ foreach($site_list as $site_item) { if (preg_match( /^http/ , $site_item)) { $return_list[] = $site_item; }else{ $return_list[] = $base_site.$site_item; return $return_list;/*得到圖片類型,并將其保存到與該文件同一目錄*/function get_name($pic_arr) //圖片類型$pattern_type = /(/.(jpg|bmp|jpeg|gif|png))/ foreach($pic_arr as $pic_item){//循環取出每幅圖的地址 $num = preg_match_all($pattern_type,$pic_item,$match_type); $pic_name = get_unique().$match_type[1][0];//改時微秒時間戳命名 //以流的形式保存圖片 $write_fd = @fopen($pic_name, wb @fwrite($write_fd, CurlGet($pic_item)); @fclose($write_fd); echo OK.. return 0;function get_name_2($pic_arr) //圖片編號和類型$pattern_type = /.*//(.*?)$/ foreach($pic_arr as $pic_item){//循環取出每幅圖的地址 $num = preg_match_all($pattern_type,$pic_item,$match_type); //以流的形式保存圖片 $write_fd = @fopen($match_type[1][0], wb @fwrite($write_fd, CurlGet($pic_item)); @fclose($write_fd); echo OK.. return 0;//通過微秒時間獲得唯一IDfunction get_unique(){list($msec, $sec) = explode( ,microtime());return $sec.intval($msec*1000000);//抓取網頁內容function CurlGet($url){ $url=str_replace( amp; , ,$url);$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, false);//curl_setopt($curl, CURLOPT_REFERER,$url);curl_setopt($curl, CURLOPT_USERAGENT, Mozilla/4.0 (compatible; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2) curl_setopt($curl, CURLOPT_COOKIEJAR, cookie.txt curl_setopt($curl, CURLOPT_COOKIEFILE, cookie.txt curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);$values = curl_exec($curl);curl_close($curl);return $values;?
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !
相關推薦:
php打包zip圖片下載的方法
php web請求安全處理
以上就是php 抓取網頁內容與圖片的方法的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答