阿狸表情图采集代码示例
百度网盘:http://pan.baidu.com/s/1pJz7EER
http://blog.jjonline.cn/phptech/175.html(转)
代码:
<?PHPheader("content-type:text/html;charset=utf-8");/**Base Function***/// exit;/*** get远程文档* @access public* @param string $url 远程url* @return mixed*/function GetUrl($url) {if (function_exists('file_get_contents')){return file_get_contents($url);}$ch = curl_init();curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_URL, $url);$result = curl_exec($ch);curl_close($ch);return $result;}/*** 采集远程文件* @access public* @param string $remote 远程文件名* @param string $local 本地保存文件名* @return mixed*/function curlDownload($remote,$local) {$cp = curl_init($remote);$fp = fopen($local,"w");curl_setopt($cp, CURLOPT_FILE, $fp);curl_setopt($cp, CURLOPT_HEADER, 0);curl_exec($cp);curl_close($cp);fclose($fp);}/**采集代码开始干活的搞起**/$BaseUrl = 'http://www.a-li.com.cn/';$EmotionUrl = $BaseUrl.'download/qq_emotion/index.php?page=';//采集页面的开始与结束$BeginPage = 1;$EndPage = 37;//总页面数;阿狸官方站更新后 总页面数可能会变化 在此处配置//$_SESSION['page'] = null;exit;//不注释该项重新初始化//采用session记录采集到哪个页面if(!$_SESSION['page']) {$Page = $BeginPage;$_SESSION['page'] = $Page;}else {$Page = $_SESSION['page'] + 1;$_SESSION['page'] = $Page;}if($Page>$EndPage) {exit('活已干完!');}//开始采集$url = $EmotionUrl.$Page;$string = GetUrl($url);while(!$string) { //while 循环保证采集无误sleep(3);$string = GetUrl($url);}//正则匹配采集到的页面中的阿狸gif图片信息$match = array();$string = preg_replace('/<!--.*\s*.*-->/i','',$string);//去除html里的注释段 可以删掉preg_match_all('/<img src="(data\/attachment.*\.gif)"\s+alt="(.*)"\s+.*\s+\/>/i',$string,$match,PREG_SET_ORDER);//采集后的文件存储位置 检测文件夹不存在就创建if(!is_dir('./ali/')) {mkdir('./ali/');}//检测匹配并循环下载采集到的gif图到与该PHP代码文件同级目录下的ali目录中if($match) {foreach($match as $key=>$value) {$imgUrl = $BaseUrl.$value[1];$imgName = './ali/'.preg_replace('/\./','',$value[2]).'.gif';//使用匹配到的img标签中的alt作为本地保存gif图的文件名curlDownload($imgUrl,$imgName);}}else {exit('匹配信息出错');}echo '<p>采集第'.$Page.'页中的阿狸gif图片完成。</p>';echo '<p>1秒后继续自动执行下一个页面</p>';echo '<script>setTimeout(function () {window.location.reload(true);},1000);</script>';?>
几点注意:应当注意2个函数
GetUrl($url) 与 curlDownload($remote,$local)
代码一:
<?php function curlDownload($remote,$local) {$cp = curl_init($remote);$fp = fopen($local,"w");curl_setopt($cp, CURLOPT_FILE, $fp);curl_setopt($cp, CURLOPT_HEADER, 0);curl_exec($cp);curl_close($cp);fclose($fp);}curlDownload('http://blog.jjonline.cn/Upload/image/201408/20140810151040.gif','aa.gif');?>
代码二:
<?phpfunction GetUrl($url) {if (function_exists('file_get_contents')){return file_get_contents($url);}$ch = curl_init();curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_URL, $url);$result = curl_exec($ch);curl_close($ch);return $result;}echo GetUrl("http://blog.jjonline.cn/phptech/175.html"); ?>
转载于:https://www.cnblogs.com/wuheng1991/p/5235749.html
阿狸表情图采集代码示例相关推荐
- python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #codin ...
- python读取txt文件代码-Python实现读取txt文件并画三维图简单代码示例
记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #codin ...
- leaflet 实现鹰眼图 (代码示例043)
第043个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中实现鹰眼图效果,这里要引用Leaflet-MiniMap插件.需要说明的是:不要将小地图组件添加到主地图的图层上,需要 ...
- java类图与代码实例
在 Java编程中,类图是一个非常重要的概念.类图的作用是用来展示类的结构以及类之间的关系.通过类图,可以很方便地展示出对象之间的关系.下面我将使用实例来演示一下我在学习 Java时的类图. 首先我们 ...
- 设计模式——代理模式(附代码示例)
一. 代理模式 1. 概念 代理模式为一个对象提供一个替身,以控制对这个对象的访问.即通过代理对象访问目标对象.这样做的好处是可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.被代 ...
- 设计模式——适配器模式(附代码示例)
一. 适配器模式 1. 概念 适配器模式(Adapter Rattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协 ...
- php自动轮播图代码,JavaScript如何实现动态轮播图效果?(代码示例)
本篇文章给大家带来的内容是JavaScript如何实现动态轮播图效果?(代码示例).有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 功能描述: 1.鼠标经过 左右侧箭头显示,鼠标离开 ...
- python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...
本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...
- python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)
本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...
最新文章
- HDU4857拓扑排序模版题
- 命名时取代基优先顺序_【选修五】高中化学重难点知识:有机物的命名方法
- 程序员的情人节礼物:当天微软开始Build 2017登记
- Win7系统不能录音怎么办
- php制作后台驻留执行 ,同时提前返回逻辑信息进行判断的实例
- 架构师的英文缩写_架构师必备的20个英文缩写!看你知道几个?
- android融云监听消息,关于android:融云-IMkit-拦截或监听所有发送消息
- 47. Python socket编程 2
- connect by
- 软工课后作业01 15100152
- 1950 - Computing Machinery and Intelligence(计算机器与智能,又译作:机器能思考么?)
- 四层和八层电梯控制系统Proteus仿真设计,51单片机,附仿真和Keil C代码
- 对 粒子滤波算法原理 的介绍,通俗易懂
- idea安装教程(傻瓜式操作、永久使用)
- Android OpenGL ES(七)----理解纹理与纹理过滤
- 如何读懂和利用你的微生物多样性测序结果?
- USYD悉尼大学DATA 2002 【R语言学习1】【介绍R】Introduction to R「虽迟但到」
- Jmeter 测试12306 获取火车票订单接口
- PMP49个过程组知识领域ITTO汇总 -- 项目范围管理
- 如何重置计算机服务到默认状态,电脑慢到让人抓狂?教你如何将Windows10还原到出厂设置...