php 抓取页面图片,php 抓取网页内容与图片的方法
這篇文章主要介紹了關于php 抓取網頁內容與圖片的方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
例子1:<?php
include_once("curl.php");/*這個文件要自己配置好*/
header("content-type:text/html;charset=utf8");
$pattern_title ="/
(.+)/title>/";//標題匹配$pattern_code = "/
(.+)/p>
$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]."
";
}
echo "
";
/*$trans = array(" "=>",", "
"=>"。");
$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);
$num=preg_match_all($pattern_code, $DATA_CONTENT, $match_code);
for($i=0;$i<$num;$i++){
echo $match_code[1][$i]."
";
}
?>
例子2:<?php
/*
author: ssh_kobe
date: 20110615
*/
set_time_limit(0);//抓取不受時間限制
function get_pic($pic_url) {
//獲取圖片二進制流
$data=CurlGet($pic_url);
/*利用正則表達式得到圖片鏈接
$pattern_src = '//';*/
$pattern_src = '//';//只匹配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!!!
';
return 0;
}
function get_pic_2($pic_url, $base_site) {
//獲取圖片二進制流
$data=CurlGet($pic_url);
/*利用正則表達式得到圖片鏈接*/
$pattern_src = '//';//只匹配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!!!
';
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;
}
//通過微秒時間獲得唯一ID
function get_unique(){
list($msec, $sec) = explode(" ",microtime());
return $sec.intval($msec*1000000);
}
//抓取網頁內容
function CurlGet($url){
$url=str_replace('&','&',$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 抓取網頁內容與圖片的方法的詳細內容,更多請關注php中文網其它相關文章!
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的php 抓取页面图片,php 抓取网页内容与图片的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php获取当前整点时间_8.PHP的日期
- 下一篇: php css去除h1样式,HTML中怎