首页
直播
壁纸
友链
Search
1
一个超好用的图床
5,193 阅读
2
网页版朋友圈程序 – LAN (现已发布)
2,695 阅读
3
给大家分享几个实用网站
1,409 阅读
4
超简洁的个人主页引导页 全网首发
1,232 阅读
5
域名在QQ内打开提示'非官方页面'的解决方法
1,032 阅读
休闲娱乐
资源分享
编程技术
人工智能
登录
Search
标签搜索
python
苏画
个人导航
资源分享
个人主页
教程
苏画主页
Github
人脸识别
宝塔
爬虫
api
接口
苏画导航
导航
苏画个人导航
苏画个人主页
白嫖
opencv
微博
苏画
累计撰写
51
篇文章
累计收到
607
条评论
首页
栏目
休闲娱乐
资源分享
编程技术
人工智能
页面
直播
壁纸
友链
搜索到
23
篇与
编程技术
的结果
2021-11-01
宝塔面板解锁 Nginx 防火墙及网站监控报表
说明测试环境:CentOS测试时间:2021-11-1宝塔版本:7.7.0仅测试了Nginx防火墙及网站监控报表两款插件,其它收费插件未测试其它系统及版本未进行测试,请自行验证,请勿在生产环境下进行测试!注意:修改代码后需要 重启面板 服务才能使其生效开始Nginx防火墙打开目录 /www/server/panel/class 找到并编辑 panelplugin.py 文件 使用 Ctrl+F 搜索并找到 softList[‘list’] = tmpList 这段代码,在其下方添加如下代码softList['pro'] = 1 for soft in softList['list']: soft['endtime'] = 0示例:修改完成后重启面板,重启完成后就可以直接安装收费的插件了,Nginx防火墙也可以直接安装使用网站监控报表如果需要使用网站监控报表还需另外修改一次代码: 安装好网站监控报表插件后打开 /www/server/panel/plugin/total 目录并编辑 total_main.py 文件 使用 Ctrl+F 搜索并找到 if ‘bt_total’ in session: return public.returnMsg(True,’OK!’); 这段代码 在这段代码前加上#将其注释掉,并在其下方加入以下代码:session['bt_total'] = True return public.returnMsg(True,'OK!');示例:然后再次重启面板,即可使用网站监控报表插件了.
2021年11月01日
287 阅读
2 评论
0 点赞
2021-10-27
JavaScript 图片懒加载
事件监听监听scroll监听scroll这个事件。鼠标滚动就触发我们需要知道两个高度窗口显示区的高度 window.innerHeight图片到视窗上边的距离高度 getBoundingClientRect().top图片未能看见:图片距离视窗顶部的距离 > 窗口显示区的高度图片能看见:图片距离视窗顶部的距离 < 窗口显示区的高度一开始,可以将图片设置为 <img data-src=""> 其中 data- 为自定义属性,浏览器碰到这个属性的时候是不会像默认属性那样进行属性处理的之后,添加滚动监听事件,为img 赋值 src 属性const images = document.querySelectorAll('img') window.addEventListener('scroll', e => { images.forEach(img => { // 获取图片到视窗上边的距离高度 const imgTop = img.getBoundingClientRect().top // 图片到视窗上边的距离高度 < 窗口显示区的高度 ,这时候,才需要加载 if (imgTop < window.innerHeight) { // 获取自定义属性 const data_src = img.getAttribute('data-src') // 将自定义属性赋值给原本的 src 属性 img.setAttribute('src', data_src) } }) }) 缺点:会多次触发属性的赋值IntersectionObserver 观察属性IntersectionObserver 浏览器提供的构造函数,前提是浏览器能够支持交叉观察:目标元素和可视窗口会产生交叉区域,交叉区域发生了什么事情,我们需要执行什么程序// 拿着望远镜的人 callback: 需要触发条件,然后执行 触发两次:1 目标元素看得见 2 目标元素看不见 const observer = new IntersectionObserver(callback) // 具体观察那个节点 observer.observe(Dom) // 取消观察 observer.unobserve(Dom) isIntersecting 是否交叉,即是否进行到可视区域const images = document.querySelectorAll('img') // 回调函数接受一个 数组参数 const callback = entries => { entries.forEach(entry => { // 是否交叉,即是否进行到可视区域 if (entry.isIntersecting) { // 获取图片节点 const imgae = entry.target // 获取自定义属性 const data_src = imgae.getAttribute('data-src') // 修改 src imgae.setAttribute('src', data_src) // 修改完属性之后,取消观察 observer.unobserve(imgae) } }) } // 拿着望远镜的人 callback: 需要触发条件,然后执行 触发两次:1 目标元素看得见 2 目标元素看不见 const observer = new IntersectionObserver(callback) images.forEach(imgae => { // 具体观察那个节点 observer.observe(imgae) }) HTML代码<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <p>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p> <p>哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦</p> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_29_48.jpg" alt="图片"> <img data-src="http://sh.qemao.com/tools/tol/tu/_filew/2020-12-07-22_28_27.jpg" alt="图片"> <script src="js/index.js"></script> </body> </html>
2021年10月27日
130 阅读
0 评论
0 点赞
2021-10-21
2分钟掌握CSS flexbox布局 和 Grid 布局
flex布局速记 交叉轴横向/* 靠右对齐 */ .a{ justify-content: flex-end; } /* 居中对齐 */ .a{ justify-content: center; } /* 平分空间 */ .a{ justify-content: space-evenly; } /* 两端对齐 */ .a{ justify-content: space-between; }flex布局速记 交叉轴竖向/* 靠下对齐 */ .a{ align-items: flex-end; } /* 居中对齐 */ .a{ align-items: center; }flex布局速记 改变主轴方向/*将主轴方向从默认的横向改为竖向排列*/ .a{ flex-direction: column; } /* flex占比调整 */ .a{ flex: 1; } /*注: 改变主轴方向后原来横向代码将变为竖向,相反竖向代码将变为横向*/
2021年10月21日
253 阅读
0 评论
0 点赞
2021-05-28
360壁纸API
获取壁纸类别url:http://wallpaper.apc.360.cn/index.php?c=WallPaperAndroid&a=getAllCategoriesurl 示例: http://wallpaper.apc.360.cn/index.php?c=WallPaperAndroid&a=getAllCategories json 示例:{ "errno": "0", "errmsg": "正常", "consume": "10", "total": "16", "data": [ { "id": "36", "name": "4K专区", "totalcnt": "2704", "create_time": "2015-12-08 13:50:44", "displaytype": "", "tempdata": "" }, { "id": "6", "name": "美女模特", "totalcnt": "3905", "create_time": "2011-10-29 17:49:27", "displaytype": "", "tempdata": "" }, { "id": "30", "name": "爱情美图", "totalcnt": "2305", "create_time": "2012-11-23 10:49:25", "displaytype": "", "tempdata": "" }, { "id": "9", "name": "风景大片", "totalcnt": "8185", "create_time": "2011-11-02 16:33:34", "displaytype": "", "tempdata": "" }, { "id": "15", "name": "小清新", "totalcnt": "6922", "create_time": "2011-12-15 18:47:03", "displaytype": "", "tempdata": "" }, { "id": "26", "name": "动漫卡通", "totalcnt": "6818", "create_time": "2012-07-27 17:17:42", "displaytype": "", "tempdata": "" }, { "id": "11", "name": "明星风尚", "totalcnt": "4316", "create_time": "2011-11-02 17:38:58", "displaytype": "", "tempdata": "" }, { "id": "14", "name": "萌宠动物", "totalcnt": "2722", "create_time": "2011-12-15 18:23:27", "displaytype": "", "tempdata": "" }, { "id": "5", "name": "游戏壁纸", "totalcnt": "2041", "create_time": "2011-10-29 17:49:12", "displaytype": "", "tempdata": "" }, { "id": "12", "name": "汽车天下", "totalcnt": "1757", "create_time": "2011-12-13 18:59:40", "displaytype": "", "tempdata": "" }, { "id": "10", "name": "炫酷时尚", "totalcnt": "4828", "create_time": "2011-11-02 17:10:53", "displaytype": "", "tempdata": "" }, { "id": "22", "name": "军事天地", "totalcnt": "665", "create_time": "2012-05-29 15:10:04", "displaytype": "", "tempdata": "" }, { "id": "16", "name": "劲爆体育", "totalcnt": "1174", "create_time": "2011-12-30 11:37:49", "displaytype": "", "tempdata": "" }, { "id": "32", "name": "纹理", "totalcnt": "333", "create_time": "2013-03-18 13:58:21", "displaytype": "", "tempdata": "" }, { "id": "35", "name": "文字控", "totalcnt": "926", "create_time": "2014-09-25 18:35:57", "displaytype": "", "tempdata": "" }, { "id": "1", "name": "限时壁纸", "totalcnt": "204", "create_time": "2014-09-25 18:20:40", "displaytype": "", "tempdata": "" } ] 解析:total:返回数据数量data:返回的数据name:类别名id:totalcnt:该类别壁纸数量获取某类别下的壁纸url:http://wallpaper.apc.360.cn/index.php?c=WallPaperAndroid&a=getAppsByCategory其他拼接参数:cid:类别id,类别已知:1:每日精选 5:游戏 6:美女 9:风景 10:视觉创意 11:明星影视 12:汽车 14:萌宠动物 15:小清新 16:体育 22:军事 26:动漫卡通 30:情感 35:文字 star:跳过的记录数count:返回的数量url 示例:http://wallpaper.apc.360.cn/index.php?c=WallPaperAndroid&a=getAppsByCategory&cid=9&start=0&count=99json 示例:{ "errno": "0", "errmsg": "正常", "consume": "6", "total": "8185", "data": [ { "pid": "319229", "cid": "9", "dl_cnt": "0", "c_t": "2018-05-02 10:10:54", "imgcut": "0", "url": "http://p16.qhimg.com/t01d7effbff8a01b127.jpg", "tempdata": "", "fav_total": "9319" }, { "pid": "319146", "cid": "9", "dl_cnt": "0", "c_t": "2018-04-27 10:06:11", "imgcut": "0", "url": "http://p17.qhimg.com/t018bb2253d2df00838.jpg", "tempdata": "", "fav_total": "6425" }, { "pid": "319145", "cid": "9", "dl_cnt": "0", "c_t": "2018-04-27 10:05:44", "imgcut": "0", "url": "http://p19.qhimg.com/t018d05d2327c2f4bec.jpg", "tempdata": "", "fav_total": "7093" }, { "pid": "319144", "cid": "9", "dl_cnt": "0", "c_t": "2018-04-27 10:05:01", "imgcut": "0", "url": "http://p19.qhimg.com/t012864214a3c106fbc.jpg", "tempdata": "", "fav_total": "5866" }, { "pid": "319143", "cid": "9", "dl_cnt": "0", "c_t": "2018-04-27 10:04:37", "imgcut": "0", "url": "http://p17.qhimg.com/t01d7f7956cc1be4821.jpg", "tempdata": "", "fav_total": "5997" } ] 解析:total:返回数据数量data:返回的数据pid:cid:类别IDurl:壁纸地址fav_total:收藏数按关键字搜索壁纸url:http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=search其他拼接参数:kw:关键字start:跳过的记录数count:返回的数量url 示例:http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=search&start=0&count=99&kw=%E6%AF%95%E4%B8%9A&start=0&count=99json 示例:{ "errno": "0", "errmsg": "success", "consume": "0", "total": "97", "data": [ { "id": "305990", "class_id": "35", "resolution": "1920x1200", "url_mobile": "http://p18.qhimg.com/t017489cbb76a02bf66.jpg", "url": "http://p18.qhimg.com/bdr/__85/t017489cbb76a02bf66.jpg", "url_thumb": "http://p18.qhimg.com/t017489cbb76a02bf66.jpg", "url_mid": "http://p18.qhimg.com/t017489cbb76a02bf66.jpg", "download_times": "0", "imgcut": "0", "tag": "_全部_ _category_文字_ _category_毕业季_ _category_伤感_ _category_文字控_", "create_time": "2017-06-16 13:30:06", "update_time": "2017-06-16 13:33:07", "utag": "文字 毕业季 伤感", "tempdata": "", "rdata": [], "img_1600_900": "http://p18.qhimg.com/bdm/1600_900_85/t017489cbb76a02bf66.jpg", "img_1440_900": "http://p18.qhimg.com/bdm/1440_900_85/t017489cbb76a02bf66.jpg", "img_1366_768": "http://p18.qhimg.com/bdm/1366_768_85/t017489cbb76a02bf66.jpg", "img_1280_800": "http://p18.qhimg.com/bdm/1280_800_85/t017489cbb76a02bf66.jpg", "img_1280_1024": "http://p18.qhimg.com/bdm/1280_1024_85/t017489cbb76a02bf66.jpg", "img_1024_768": "http://p18.qhimg.com/bdm/1024_768_85/t017489cbb76a02bf66.jpg" }, { "id": "306106", "class_id": "35", "resolution": "1920x1200", "url_mobile": "http://p16.qhimg.com/t01b31a7859ecc52066.jpg", "url": "http://p16.qhimg.com/bdr/__85/t01b31a7859ecc52066.jpg", "url_thumb": "http://p16.qhimg.com/t01b31a7859ecc52066.jpg", "url_mid": "http://p16.qhimg.com/t01b31a7859ecc52066.jpg", "download_times": "0", "imgcut": "0", "tag": "_全部_ _category_文字_ _category_毕业季_ _category_伤感_ _category_文字控_", "create_time": "2017-06-20 13:12:50", "update_time": "2017-06-20 13:12:50", "utag": "文字 毕业季 伤感", "tempdata": "", "rdata": [], "img_1600_900": "http://p16.qhimg.com/bdm/1600_900_85/t01b31a7859ecc52066.jpg", "img_1440_900": "http://p16.qhimg.com/bdm/1440_900_85/t01b31a7859ecc52066.jpg", "img_1366_768": "http://p16.qhimg.com/bdm/1366_768_85/t01b31a7859ecc52066.jpg", "img_1280_800": "http://p16.qhimg.com/bdm/1280_800_85/t01b31a7859ecc52066.jpg", "img_1280_1024": "http://p16.qhimg.com/bdm/1280_1024_85/t01b31a7859ecc52066.jpg", "img_1024_768": "http://p16.qhimg.com/bdm/1024_768_85/t01b31a7859ecc52066.jpg" } ] 解析:total:返回数据数量data:返回的数据id:壁纸idtag:所属的壁纸类别名称utag:壁纸tagsfav_total:收藏数获取今日热门搜索url:http://openbox.mobilem.360.cn/html/api/wallpaperhot.htmljson 示例:{ "error": 0, "end_state": 1, "total": 11, "data": [ "爱情箴言", "一个人", "范冰冰", "温馨", "阿狸", "恶搞", "lomo", "清纯", "瓶邪", "正能量", "毕业季", "葫芦娃", "手写", "世界杯", "TFBOYS", "我是歌手", "李易峰", "早安" ] 解析:total:返回数据数量data:返回的数据
2021年05月28日
502 阅读
2 评论
2 点赞
2021-05-14
使用css实现简单的图片自适应UI模板
使用css布局一个非常简单的自适应图片UI模板效果预览HTML代码<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>css实现图片排版效果</title> <link rel="stylesheet" href="./ceshi.css"> </head> <body> <!-- css图片自适应模板 苏画-博客:qemao.com --> <div class="centent"> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/be89d4b8b923c55cc36088c2bbfafbe7.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/2021-04-22-15_03_36.jpg" alt=""> </div> </div> <div class="main"> <div class="img"> <img src="http://sh.qemao.com/tools/tol/tu/_filew/1a4662b54093989122989e686b20f9df.jpg" alt=""> </div> </div> </div> </body> </html> css代码body { padding: 15px; min-width: 320px; } .img>img { width: 100%; height: 100%; border-radius: 5px; object-fit: cover; } .img { display: flex; width: 90%; height: 90%; align-items: center; border-radius: 5px; } .main { display: flex; justify-content: center; align-items: center; width: 25%; height: 250px; max-width: 25%; } .centent { display: flex; flex-wrap: wrap; width: 100%; height: auto; min-height: 320px; } @media screen and (max-width: 1000px) { .main { display: flex; justify-content: center; align-items: center; width: 33.3%; height: 250px; max-width: 33.3%; } body { padding: 5px; } } @media screen and (max-width: 756px) { .main { display: flex; justify-content: center; align-items: center; width: 50%; height: 250px; max-width: 50%; } body { padding: 8px; } } @media screen and (max-width: 500px) { body { padding: 3px; } } @media screen and (max-width: 350px) { body { padding: 0px; } }
2021年05月14日
274 阅读
0 评论
3 点赞
2021-04-19
github常用的api接口
功能api地址请求方式请求参数返回参数获取用户信息https://api.github.com/users/getpath路径: 用户名一个用户对象获取用户所有仓库https://api.github.com/users/{用户名}/reposgetpath路径: 用户名返回一个数组获取某个仓库的详细信息https://api.github.com/repos/{用户名}/{仓库名}getpath路径: 用户名 和 仓库名返回一个仓库对象获取某个仓库里根目录文件或文件夹数组https://api.github.com/repos//{用户名}/{仓库名}/contentsgetpath路径: 用户名 和 仓库名返回一个首层文件或文件夹数组获取某个仓库里子目录文件或文件夹数组https://api.github.com/repos//{用户名}/{仓库名}/contents/{文件名或文件夹名}getpath路径: 用户名 和 仓库名和文件名或文件夹名返回一个文件数组获取某文件的原始内容(Raw)1. 通过上面的文件信息中提取download_url这条链接,就能获取它的原始内容了。2. 或者直接访问:https://raw.githubusercontent.com/{用户名}/{仓库名}/{分支名}/{文件路径}getpath路径: 用户名 和 仓库名和文件l路径返回一个文件内容的字符串获取某个用户的跟随者列表https://api.github.com/users/{用户名}/followersgetpath路径: 用户名返回一个数组获取某个用户正在关注谁列表https://api.github.com/users/{用户名}}/followinggetpath路径: 用户名返回一个数组获取某个用户加入的组织列表https://api.github.com/users/{用户名}/orgsgetpath路径: 用户名返回一个数组repo中所有的commits列表https://api.github.com/repos/{用户名}/{仓库名}/commitsget--某一条commit详情https://api.github.com/repos/{用户名}/{仓库名}/commits/{某一条commit的SHA}get--issues列表https://api.github.com/repos/{用户名}/{仓库名}/issuesget--某条issue详情https://api.github.com/repos/{用户名}/{仓库名}/issues/{序号}getissues都是以1,2,3这样的序列排号的-某issue中的comments列表https://api.github.com/repos/{用户名}/{仓库名}/issues/{序号}/commentsget--某comment详情https://api.github.com/repos/{用户名}/{仓库名}/issues/comments/{评论详情的ID}get评论ID是从issues列表中获得的-
2021年04月19日
190 阅读
0 评论
0 点赞
2021-04-11
Ppython爬取微博文字与图片(不使用Cookie)
网页版微博是纯正的HTML,而且调用的微博自家的API来获取图片。网址:https://m.weibo.cn/api/container/即为微博api里面包含了个人的信息与微博文字与图片存储地址。进入api页面我们可以很清晰的看到各种信息都用json存储起来了。我们再利用python中的json库提取出来即可。这比其它利用cookie模拟登陆要方便很多,我们只要输入被爬虫用户的微博ID然后运行便能自动爬取。ID从这个复制链接里面可以看出来。代码采用Python3# -*- coding: utf-8 -*- import urllib.request import json import requests import os path = 'C:\\Users\\dell\\Desktop\\weibo\\' id = '2093492691' proxy_addr = "122.241.72.191:808" pic_num = 0 weibo_name = "programmer" def use_proxy(url,proxy_addr): req=urllib.request.Request(url) req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0") proxy=urllib.request.ProxyHandler({'http':proxy_addr}) opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler) urllib.request.install_opener(opener) data=urllib.request.urlopen(req).read().decode('utf-8','ignore') return data def get_containerid(url): data=use_proxy(url,proxy_addr) content=json.loads(data).get('data') for data in content.get('tabsInfo').get('tabs'): if(data.get('tab_type')=='weibo'): containerid=data.get('containerid') return containerid def get_userInfo(id): url='https://m.weibo.cn/api/container/getIndex?type=uid&value='+id data=use_proxy(url,proxy_addr) content=json.loads(data).get('data') profile_image_url=content.get('userInfo').get('profile_image_url') description=content.get('userInfo').get('description') profile_url=content.get('userInfo').get('profile_url') verified=content.get('userInfo').get('verified') guanzhu=content.get('userInfo').get('follow_count') name=content.get('userInfo').get('screen_name') fensi=content.get('userInfo').get('followers_count') gender=content.get('userInfo').get('gender') urank=content.get('userInfo').get('urank') print("微博昵称:"+name+"\n"+"微博主页地址:"+profile_url+"\n"+"微博头像地址:"+profile_image_url+"\n"+"是否认证:"+str(verified)+"\n"+"微博说明:"+description+"\n"+"关注人数:"+str(guanzhu)+"\n"+"粉丝数:"+str(fensi)+"\n"+"性别:"+gender+"\n"+"微博等级:"+str(urank)+"\n") def get_weibo(id,file): global pic_num i=1 while True: url='https://m.weibo.cn/api/container/getIndex?type=uid&value='+id weibo_url='https://m.weibo.cn/api/container/getIndex?type=uid&value='+id+'&containerid='+get_containerid(url)+'&page='+str(i) try: data=use_proxy(weibo_url,proxy_addr) content=json.loads(data).get('data') cards=content.get('cards') if(len(cards)>0): for j in range(len(cards)): print("-----正在爬取第"+str(i)+"页,第"+str(j)+"条微博------") card_type=cards[j].get('card_type') if(card_type==9): mblog=cards[j].get('mblog') attitudes_count=mblog.get('attitudes_count') comments_count=mblog.get('comments_count') created_at=mblog.get('created_at') reposts_count=mblog.get('reposts_count') scheme=cards[j].get('scheme') text=mblog.get('text') if mblog.get('pics') != None: # print(mblog.get('original_pic')) # print(mblog.get('pics')) pic_archive = mblog.get('pics') for _ in range(len(pic_archive)): pic_num += 1 print(pic_archive[_]['large']['url']) imgurl = pic_archive[_]['large']['url'] img = requests.get(imgurl) f = open(path+weibo_name+'\\'+str(pic_num)+ str(imgurl[-4:]), 'ab') # 存储图片,多媒体文件需要参数b(二进制文件) f.write(img.content) # 多媒体存储content f.close() with open(file,'a',encoding='utf-8') as fh: fh.write("----第"+str(i)+"页,第"+str(j)+"条微博----"+"\n") fh.write("微博地址:"+str(scheme)+"\n"+"发布时间:"+str(created_at)+"\n"+"微博内容:"+text+"\n"+"点赞数:"+str(attitudes_count)+"\n"+"评论数:"+str(comments_count)+"\n"+"转发数:"+str(reposts_count)+"\n") i+=1 else: break except Exception as e: print(e) pass if __name__ == "__main__": if os.path.isdir(path+weibo_name): pass else: os.mkdir(path+weibo_name) file = path+weibo_name+'\\'+weibo_name+".txt" get_userInfo(id) get_weibo(id, file)最终的效果图(爬取的微博txt文件):
2021年04月11日
144 阅读
0 评论
0 点赞
2021-04-11
网易云音乐官方的一些接口
收藏这些API,获取网易云音乐数据超轻松简单介绍一下它们:评论http://music.163.com/api/v1/resource/comments/R_SO_4_{歌曲ID}?limit=20&offset=0这应该是最最最常见的了,毕竟80%的网易云音乐的爬虫/数据分析文章都是关于评论数据~使用技巧:limit:返回数据条数(每页获取的数量),默认为20,可以自行更改offset:偏移量(翻页),offset需要是limit的倍数type:搜索的类型举例,比如limit设置为10,则第一页,第二页分别为:http://music.163.com/api/v1/resource/comments/R_SO_4_483671599?limit=10&offset=0 http://music.163.com/api/v1/resource/comments/R_SO_4_483671599?limit=10&offset=10PS:返回的数据格式为json,需要注意的是通过此接口获取的评论数量最多2万条。歌单https://music.163.com/api/playlist/detail?id={歌单ID}网易云音乐每日推荐各种神奇歌单也是它的一大特色,我们可以利用这个api获取歌单里的所有歌曲信息。例如:https://music.163.com/api/playlist/detail?id=2557908184同时歌单api还可以应用于各种榜单上,例如:id=19723756,云音乐飙升榜id=3779629,云音乐新歌榜id=3778678,云音乐热歌榜id=2250011882,抖音排行榜具体id可以按需求自己查找。用户信息https://music.163.com/api/v1/user/detail/{用户ID}大家在获取到了评论之后,也会同时得到该条评论的用户id。那么利用他的id和这个用户信息api来获取用户的信息。汇总之后,我们就可以得到一个歌手在网易云的粉丝用户画像。歌词https://music.163.com/api/song/lyric?id={歌曲ID}&lv=1&kv=1&tv=-1歌词用来做什么呢?随便举例几个标题:《周杰伦14张专辑歌词,里面是19年的岁月》《华语歌坛30年,大家都在唱些什么?》搜索结果http://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s={搜索内容}&type=1&offset=0&total=true&limit=20使用技巧:limit:返回数据条数(每页获取的数量),默认为20,可以自行更改offset:偏移量(翻页),offset需要是limit的倍数type:搜索的类型type=1 单曲type=10 专辑type=100 歌手type=1000 歌单type=1002 用户type=1004 MVtype=1006 歌词type=1009 主播电台最后推荐一些冷门的接口:歌手专辑http://music.163.com/api/artist/albums/{歌手ID}?id={歌手ID}&offset=0&total=true&limit=10专辑信息http://music.163.com/api/album/{专辑ID}?ext=true&id={专辑ID}&offset=0&total=true&limit=10歌曲信息http://music.163.com/api/song/detail/?id={歌曲ID}&ids=%5B{歌曲ID}%5DMVhttp://music.163.com/api/mv/detail?id={MV的ID}&type=mp4下载接口http://music.163.com/song/media/outer/url?id=歌曲ID.mp3相信大家看完此文,心里一定已经跃跃欲试了吧~
2021年04月11日
256 阅读
2 评论
0 点赞
2021-04-10
Pygame详解:music 模块
pygame.mixer.musicPygame 中控制音频流的模块。函数pygame.mixer.music.load() —— 载入一个音乐文件用于播放 pygame.mixer.music.play() —— 开始播放音乐流 pygame.mixer.music.rewind() —— 重新开始播放音乐 pygame.mixer.music.stop() —— 结束音乐播放 pygame.mixer.music.pause() —— 暂停音乐播放 pygame.mixer.music.unpause() —— 恢复音乐播放 pygame.mixer.music.fadeout() —— 淡出的效果结束音乐播放 pygame.mixer.music.set_volume() —— 设置音量 pygame.mixer.music.get_volume() —— 获取音量 pygame.mixer.music.get_busy() —— 检查是否正在播放音乐 pygame.mixer.music.set_pos() —— 设置播放的位置 pygame.mixer.music.get_pos() —— 获取播放的位置 pygame.mixer.music.queue() —— 将一个音乐文件放入队列中,并排在当前播放的音乐之后 pygame.mixer.music.set_endevent() —— 当播放结束时发出一个事件 pygame.mixer.music.get_endevent() —— 获取播放结束时发送的事件Pygame 中播放音乐的模块和 pygame.mixer 模块是密切联系的。使用音乐模块去控制在调音器上的音乐播放。音乐(music)播放和声音(sound)播放的不同之处在于音乐是流式的,并且绝对不会在一开始就把一个音乐文件全部载入。调音系统在工作刚开始时仅支持单音乐流。注意:对于 MP3 格式的支持是受限制的。在一些系统上,一种不受支持的格式将会是系统崩溃,例如 Debian Linux。为了游戏的稳定性,建议使用 OGG 进行替代。函数详解pygame.mixer.music.load()载入一个音乐文件用于播放。load(filename) -> Noneload(object) -> None该函数将会载入一个音乐文件名或者文件对象,并且准备播放。如果已经有音乐流正在播放,该音乐流将被停止。另外,函数不会开始播放音乐。pygame.mixer.music.play()开始播放音乐流。play(loops=0, start=0.0) -> None该函数用于播放已载入的音乐流。如果音乐已经开始播放,则将会重新开始播放。loops 参数控制重复播放的次数,例如 play(5) 意味着被载入的音乐将会立即开始播放 1 次并且再重复 5 次,共 6 次。如果 loops = -1,则表示无限重复播放。start 参数控制音乐从哪里开始播放。开始的位置取决于音乐的格式。MP3 和 OGG 使用时间表示播放位置(以秒为单位)。MOD使用模式顺序编号表示播放位置。如果音乐文件无法设置开始位置,则传递了start参数后会产生一个NotImplementedError 错误。pygame.mixer.music.rewind()重新开始播放音乐。rewind() -> None从文件开头开始重新播放音乐。pygame.mixer.music.stop()结束音乐播放。stop() -> None如果音乐正在播放则立即结束播放。pygame.mixer.music.pause()暂停音乐流的播放。pause() -> None通过调用 pygame.mixer.music.unpause() 函数继续播放音乐。pygame.mixer.music.unpause()恢复音乐播放。unpause() -> None在播放暂停后使用该函数可以继续音乐流的播放。pygame.mixer.music.fadeout()淡出的效果结束音乐播放。fadeout(time) -> None该函数将会在音乐淡出(也就是不在有声音放出)一段指定长度的时间(以毫秒为单位)后结束播放。注意:该函数在调用后会一直处于阻塞状态,直到音乐已经淡出。pygame.mixer.music.set_volume()设置音量。set_volume(value) -> None设置音乐的播放音量。value 参数值范围为 0.0~1.0。当新的音乐文件被载入,音量会被重置。pygame.mixer.music.get_volume()获取音量。get_volume() -> value返回正在播放的音乐的音量(此音量应该是调音器音量,注意与其他音量参数区分)。返回值范围为 0.0~1.0。pygame.mixer.music.get_busy()检查是否正在播放音乐。get_busy() -> bool如果有音乐流正在播放,此方法返回 True。否则返回 False。pygame.mixer.music.set_pos()设置播放的位置。set_pos(pos) -> None设置播放的起始位置。pos 参数是一个浮点数(或者一个可以转换为浮点数的数值),其值取决于音乐文件的格式:对于 MOD 文件,它是模块中的整型模式号;对于 OGG 文件,它是一个以音频开头为零点的绝对时间值(以秒为单位);对于 MP3 文件,它是以当前播放位置为零点的绝对时间值(以秒为单位)。为了对一个 MP3 文件的进行绝对定位,建议首先调用 rewind() 函数(其他文件格式不受支持)。SDL_mixer 更新的版本提供了更好的定位支持。如果一种特殊的格式不支持定位,将会产生一个 SDLError 错误。该函数会调用 SDL_mixer 内的 Mix_SetMusicPosition() 函数。pygame.mixer.music.get_pos()获取播放的位置。get_pos() -> time此函数会获得音乐的播放时长(以毫秒为单数的数值)。返回值仅代表已经音乐已经播放了多久,并不考虑任何起始位置偏移量。pygame.mixer.music.queue()将一个音乐文件放入队列中,并排在当前播放的音乐之后。queue(filename) -> None此函数将会载入一个音乐文件并将其放入队列中。当前的音乐一旦播放完毕,正在排队的音乐文件就会开始播放。如果当前音乐被人为停止或者切换到其他音乐,则正在排队的音乐会被丢弃。下面的示例意思是先播放 6 次 Bach 然后再播放 1 次 Mozart:pygame.mixer.music.load('bach.ogg') pygame.mixer.music.play(5) # Plays six times, not five! pygame.mixer.music.queue('mozart.ogg')pygame.mixer.music.set_endevent()当播放结束时发出一个事件。set_endevent() -> Noneset_endevent(type) -> None调用此函数会使 Pygame 在音乐结束播放后发出信号(通过事件队列)。type 参数决定了什么样的事件将被放入事件队列中。任何时候音乐结束,都会放入指定事件到队列中(不仅仅是第一次)。调用该函数并不带任何参数,表示停止投放事件到队列中。pygame.mixer.music.get_endevent()获取播放结束时发送的事件。get_endevent() -> type返回音乐结束时被放入队列的事件类型。如果没有指定 endevent 事件,此方法会返回 pygame.NOEVENT 。
2021年04月10日
178 阅读
0 评论
0 点赞
2021-03-26
使用Python批量爬取美女图片
运行截图:相对于以前的版本此次增加自定义关键词实例代码:from bs4 import BeautifulSoup import requests,re,os headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36' } def Get_Url(url): response = requests.get(url, headers=headers).text soup = BeautifulSoup(response,'html.parser') for data in soup.find_all('a',class_='list-title text-md h-2x'): url_data = data.get('href') urls = "https://www.vmgirls.com/" + str(url_data) Down_Image(urls) print('-----------------------------------------------') print(urls) def Down_Image(url): response = requests.get(url, headers=headers).text soup = BeautifulSoup(response, 'html.parser') image_url = soup.find_all('img') for data in image_url: image_type = data.get('src').split('.')[-1] if image_type == 'jpg' or image_type == 'jpeg' or image_type == 'png': url_data = data.get('src') # print(url_data) dir_name = soup.find(class_='post-title h1').string if not os.path.exists(dir_name): os.mkdir(dir_name) # print(dir_name) image = requests.get("https:" + str(url_data), headers=headers).content file_name = url_data.split('/')[-1] # print(file_name) with open(dir_name + '/' + file_name, 'wb') as f: f.write(image) print('正在写入----->' + dir_name + '/' + file_name) if __name__ == '__main__': print(' ---------------------------------------------------------------------') print('| |') print('| Author:culprit --- iamdd |') print('| |') print(' ---------------------------------------------------------------------') print('支持搜索关键词(例如少女、小姐姐、青春。。。)') key = input('请输入关键词(默认回车不输入):') if key == '': url = "https://www.vmgirls.com/" else: url = "https://www.vmgirls.com/?s=" + key Get_Url(url)
2021年03月26日
370 阅读
0 评论
2 点赞
1
2
3