使用php的HTTP请求的库Requests实现美女图片墙


Posted in PHP onFebruary 22, 2015

使用百度的接口获取美女图片,并用瀑布流的形式展示到自己的页面中。

github项目地址:https://github.com/CraryPrimitiveMan/pretty

最终效果如下:

使用php的HTTP请求的库Requests实现美女图片墙

点开百度图片的美女频道,http://image.baidu.com/channel?c=%E7%BE%8E%E5%A5%B3#%E7%BE%8E%E5%A5%B3

打开chrome的调试工具或者firefox的firebug工具,将滚动条拖到最下面,可以再network中看到如下请求:

使用php的HTTP请求的库Requests实现美女图片墙

其参数如下:

使用php的HTTP请求的库Requests实现美女图片墙

通过分析,推断并验证了其中字段的含义,col表示频道,tag表示的是全部的美女,也可以是其他Tag(其内容如下图),pn表示从第几张图片开始,rn表示获取多少张

使用php的HTTP请求的库Requests实现美女图片墙

其返回值如下:

使用php的HTTP请求的库Requests实现美女图片墙

分析imgs中的内容,选出自己想要的属性,我确定要使用shareUrl。

这样我们就可以用PHP的Curl根据百度的API获取到美女图片了。

在php中可以这样写:

<?php
require_once './Requests/library/Requests.php';
Requests::register_autoloader();
$page = $_GET['page'];
$pageSize = 10;
$options = array('Host'=>'image.baidu.com');
$url = 'http://image.baidu.com/data/imgs?sort=0&pn=' . $page * $pageSize . 
    '&rn=' . $pageSize . '&col=美女&tag=全部&tag3=&p=channel&from=1';
$response = Requests::get($url, $options);
echo $response->body;
?>

其中的Requests 是一个PHP的HTTP请求的库,地址:http://requests.ryanmccue.info/

其中的美女也可以替换成其他频道。

之后就是去展示图片,使用了一个瀑布流的插件实现。

最终的代码都放到了我的Github上,项目地址:https://github.com/CraryPrimitiveMan/pretty

只不过github上的col的参数是摄影~~

当然小伙伴们也可以换成其他和谐资源,自由发挥下吧。

PHP 相关文章推荐
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
thinkphp文件引用与分支结构用法实例
Nov 26 PHP
教大家制作简单的php日历
Nov 17 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
PHP微信网页授权的配置文件操作分析
May 29 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
十幅图告诉你什么是PHP引用
Feb 22 #PHP
PHP的引用详解
Feb 22 #PHP
PHP实现加密的几种方式介绍
Feb 22 #PHP
php使用parse_url和parse_str解析URL
Feb 22 #PHP
php的闭包(Closure)匿名函数详解
Feb 22 #PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 #PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 #PHP
You might like
PHP 函数学习简单小结
2010/07/08 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
python字典DICT类型合并详解
2017/08/17 Python
Selenium的使用详解
2018/10/19 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
小松树教学反思
2014/02/11 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
父母寄语大全
2014/04/12 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
火箭队口号
2014/06/18 职场文书
班主任经验交流材料
2014/12/16 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android