1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php 抓取页面图片 php 抓取网页内容与图片的方法

php 抓取页面图片 php 抓取网页内容与图片的方法

时间:2019-03-26 11:51:33

相关推荐

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: 0615

*/

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中文网,转载请注明出处,感谢您的尊重!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。