简单的一个远传采集并下载远传图片存储到本地示例
2016-08-30 22:25
573 查看
针对淘宝的数据采集写了个简单的示例,但是最好的还是要用淘宝api去获取信息这个是比较正规的
<?php /** * 采集淘宝数据 * @Author Bieanju **/ header("Content-Type:text/html; charset=utf-8"); $url = "https://item.taobao.com/item.htm?spm=a217h.7274645.1998424065.10.5kIFLZ&id=43823358756"; $str = file_get_contents($url); $str = mb_convert_encoding($str,'UTF-8','GBK'); $goods['title'] = preg_substr('/<h3 class="tb-main-title"[^>]*>/','/<\/h3>/',$str); $goods['market_price'] = preg_substr('/<em class="tb-rmb-num">/','/<\/em>/',$str); preg_match('/<([a-z]+)[^i]*id=\"J_StrPrice\"[^>]*>([^<]*)<\/\\1>/is', $str, $price); preg_match('/]*id="J_ImgBooth"[^r]*rc="([^"]*)"[^>]*>/', $str, $img); $goods['price'] = !empty($price[1]) ? $price[1] : 0; $url =!empty($img[1]) ? getImage('http:'.$img[1],'','upload',array('jpg','gif','png'),1) : 0; $goods['url'] = $url; if(isset($goods) && !empty($goods)){ echo "采集成功!<br />商品名称【".$goods['title']."】<br />商品价格【".$goods['market_price']."】<br />商品图片已成功保存到本地【".$goods['url']."】<br /><img src='".$goods['url']."' />"; }else{ exit("采集失败,请重试!"); } /** * 匹配区域采集数据 * @Author Bieanju **/ function preg_substr($start, $end, $str){ $temp = preg_split($start, $str); $content = preg_split($end, $temp[1]); return $content[0]; } /** * 下载图片到本地 * @Author Bieanju **/ function getImage($url, $filename='', $dirName, $fileType, $type=0){ if($url == ''){return false;} $defaultFileName = basename($url); $suffix = substr(strrchr($url,'.'), 1); if(!in_array($suffix, $fileType)){ return false; } $filename = $filename == '' ? time().rand(0,9).'.'.$suffix : $defaultFileName; if($type){ $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file = curl_exec($ch); curl_close($ch); }else{ ob_start(); readfile($url); $file = ob_get_contents(); ob_end_clean(); } $dirName = $dirName.'/'.date('Y', time()).'/'.date('m', time()).'/'.date('d',time()).'/'; if(!file_exists($dirName)){ mkdir($dirName, 0777, true); } $res = fopen($dirName.$filename,'a'); fwrite($res,$file); fclose($res); return $dirName.$filename; } ?>
相关文章推荐
- [笔记]python网络爬虫:一个简单的爬取图片并存储示例
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- COCOS2D-X之使用CURL下载图片的一个简单Demo
- 【转】 COCOS2D-X之使用CURL下载图片的一个简单Demo
- C#:一个拖拽网页图片到本地存储的小工具
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- VC++6.0 一个简单的图片按钮示例
- 一个简单的全屏图片上下打开显示网页效果示例
- 手机网页示例2——一个简单的顶上bar图片切换效果
- 【android】简单的根据url下载图片的一个类
- VC++6.0 一个简单的图片按钮示例
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 关于sql server 存储图片的一个简单方法
- 简单方式下载网页中的文件存储在本地物理路径,或转成字节数组存入数据库中
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- 一个简单的下载程序VB.NET示例
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 一个简单且丑陋的js切换背景图片基础示例