首页 > 编程 > PHP > 正文

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

2020-03-22 20:23:24
字体:
来源:转载
供稿:网友
这篇文章主要介绍了关于php 抓取网页内容与图片的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

例子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教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表