Python泰裤辣丨520写一个自动换壁纸软件,将女友照骗放进去送给她
Python泰裤辣!520写一个自动换壁纸软件,将女友照骗放进去送给她!
- 准备工作
- 1、环境
- 2、使用的模块
- 3、如何配置pycharm里面的python解释器?
- 4、pycharm如何安装插件?
- 代码实战
- 1、获取壁纸
- 自动更换壁纸程序
- 最后

话说兄弟们,今天520你们都送给女朋友啥礼物了?
不会吧不会吧,不会有人还是单身狗吧!

算了,还是回到正题吧,再说我要挨打了~
作为程序员,平常的礼物都买了,当然还得做一个不一样的有代表性的,体现一下自己的用心。
那么今天就给分享怎么用Python将女友照片做成自动换壁纸软件,话不多说直接开始!
准备工作
1、环境
首先我们准备好环境和编辑器,我使用的是:
- Python 3.8 解释器
- Pycharm 编辑器
2、使用的模块
import re # 正则表达式模块
import requests # 数据请求模块
import os # 文件操作模块
import ctypes # 时间模块
request是第三方模块,需要手动安装一下,win + R输入cmd 输入安装命令pip install requests
其它的都是自带的,不用安装,直接调用。
3、如何配置pycharm里面的python解释器?
- 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
- 点击齿轮, 选择add
- 添加python安装路径
4、pycharm如何安装插件?
- 选择file(文件) >>> setting(设置) >>> Plugins(插件)
- 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
- 选择相应的插件点击 install(安装) 即可
- 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效
代码实战
为了单身的小伙伴,于是我将案例分为两个部分,源码我都放在文末名片了,自己拿一下哈。
- 获取壁纸
- 设置自动更换
当然,不单身的话直接看第二部分,哈哈~
1、获取壁纸
首先来实现单张壁纸获取
这里分为四个步骤来获取壁纸,后面的网址我都屏蔽一下,防止检测。
- 发送请求, 对于 http://www.***.com/desk/31131.htm 发送请求
- 获取数据, 获取网页源代码 <服务器返回响应数据>
- 解析数据, 提取我们想要的数据内容 壁纸链接以及名字
- 保存数据, 把壁纸文件保存到本地文件
发送请求
for page in range(3, 21):print(f'正在采集第{page}页的数据内容')# 请求链接link = f'http://www.****.com/index_{page}.htm'# 发送请求html_data = requests.get(link).text# 提取IDimg_id_list = re.findall('<a href="/desk/(\d+)\.htm" title=', html_data)# for循环遍历for img_id in img_id_list:# 请求链接url = f'http://www.***.com/desk/{img_id}.htm'# 发送请求response = requests.get(url)
获取数据
response.text 获取响应文本数据
response.encoding = response.apparent_encoding 自动识别码
解析数据
# 获得到数据, 返回出现乱码了
response.encoding = 'gbk'
# 链接地址 以及 标题
img, title = re.findall('<img src="(.*?)" alt="(.*?)"', response.text)[0]
print(img, title)
保存数据
# 发送请求, 获取数据
img_content = requests.get(img).content
with open('img\\' + title + '.jpg', mode='wb') as f:f.write(img_content)
多页多个数据采集
这里只讲一下大概思路,我有专门录制视频来讲解,可以在文末名片拿视频。
一个链接, 对应一个数据,获取多个链接, 获取多个数据。
http://www.***.com/desk/31095.htm
http://www.***.com/desk/31131.htm
http://www.***.com/desk/31090.htm
http://www.***.com/desk/31092.htm
第二页: http://www.***.com/index_2.htm
第三页: http://www.***.com/index_3.htm
第四页: http://www.***.com/index_4.htm
自动更换壁纸程序
import os
import ctypes
import cv2def Change():# 壁纸文件夹路径wallpaper_dir = r"D:\壁纸\output"# 获取壁纸文件夹中的文件列表wallpapers = os.listdir(wallpaper_dir)# 随机选择一张壁纸# wallpaper_filename = random.choice(wallpapers)for wallpaper in wallpapers:# 拼接壁纸文件的完整路径wallpaper_path = os.path.join(wallpaper_dir, wallpaper)# 设置壁纸ctypes.windll.user32.SystemParametersInfoW(20, 0, wallpaper_path, 3)def convert_mp4_to_jpgs(path):video_capture = cv2.VideoCapture(path)still_reading, image = video_capture.read()frame_count = 5 # 保存的起始帧的编号005while still_reading:cv2.imwrite(f"output/frame_{frame_count:03d}.jpg", image)# read next imagestill_reading, image = video_capture.read()frame_count += 5 # 保存帧依次增加5,005>>010>>015.......Change()
最后
为了大家能更好的让女朋友感受到你的爱,我还准备了一份讲女友照片做成照片墙的源码,直接在下方名片领取就好了,来看看效果。

好了,520的分享就到这结束了,祝大家表白的表白成功,过节的节日快乐,没女朋友的早点找一个!
相关文章:
Python泰裤辣丨520写一个自动换壁纸软件,将女友照骗放进去送给她
Python泰裤辣!520写一个自动换壁纸软件,将女友照骗放进去送给她! 准备工作1、环境2、使用的模块3、如何配置pycharm里面的python解释器?4、pycharm如何安装插件? 代码实战1、获取壁纸 自动更换壁纸程序最后 话说兄弟们,今天520你们都送给女朋友啥礼物了…...
CMake: 设置编译选项
CMake: 设置编译选项 导言编译器选项相关概念编译器选项设置补充 导言 上一篇我们学习了构建类型的相关内容,并且可以生成了不同构建类型的库,这一篇我们将介绍编译器选项的相关内容。 编译器选项相关概念 编译器选项是指在编译程序时,可以…...
美团Java开发一面凉经
目录 1.HashMap底层数据结构2.列举几个常见的线程安全容器3.HashMap线程问题4.concurrentHashMap5.ConcurrentModificationException6.Spring AOP、IOC、DI介绍下7.不使用依赖注入,使用传统方式的声明会有什么问题8.最左前缀原则9.TCP三次握手、四次挥手 1.HashMap底…...
Java面试知识点(全)-spring面试知识点二
Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 Spring 事物 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作&…...
【音视频开发】基础知识:视频封装格式和编码格式
文章目录 一、封装格式与编码格式的关系视频编码格式视频封装格式MP43GPRM、RMVBAVI、WMVVOBFLVMKVWebMMOVTS 封装格式与编码格式对应 一、封装格式与编码格式的关系 视频编码格式和视频封装格式的关系及区别 这两者的关系好比酒与酒瓶的关系,编码格式好比酒瓶里的…...
OData Web API 一个开放标准的协议
OData Web API 是一个开放标准的协议,用于创建和使用基于 RESTful 的 Web API。它允许开发人员通过统一的方式来发布、查询、操作和管理数据资源。 OData Web API 基于 OData 协议,该协议定义了一组规范和约定,用于建立与数据源交互的标准化…...
PT100温度采集
1、信号采集的基本原理 PT100是将温度信号转换为电阻输出,其电阻值变化范围为0~200Ω。AD转换器只能对电压进行转换,无法采集直接采集温度,因此,需要一个1mA恒电流源给PT100供电,将电阻变化转换为电压变化。使用恒流源…...
ThinkSystem DM 全闪存阵列 —— 通过全闪存 NVMe 转型加速您的业务
ThinkSystem DM 全闪存阵列——通过全闪存 NVMe 转型加速您的业务 挑战 要缩短产品上市时间并提高客户满意度,企业必须不断改善关键业务运营的速度和响应能力。其中的一个关键要素是全闪存存储,它可以大幅加速关键工作负载。 不过,随着全闪…...
SpringCloud------代码demo(二)
SpringCloud------代码demo(二) 编码实操 以订单——支付微服务模块作为基础,开始逐渐扩充 微服务架构编码构建 1.约定 > 配置 > 编码 2.IDEA新建project工作空间 3.Rest微服务工程构建 总父工程 POM project module 首先创建maven项…...
TCL语法
目录 脚本、命令和单词符 置换 变量置换 命令置换 反斜杠置换 双引号和花括号 注释 脚本、命令和单词符 一个 TCL 脚本可以包含一个或多个命令。命令之间必须用换行符或分号隔开。 set a 1 set b 2 或者 set a 1;set b 2 都是合法的 TC…...
Partial convolution Gated convolution
组会讨论帖 1. 图像修复 图像修复(Image Inpainting),顾名思义,就是将图像中损坏的部分修复起来,是一种图像编辑技术,可以应用在移除物体、修复老照片、图像补全(eg,地震插值)等等。…...
量化投资 无套利 No-arbitrage
文章目录 量化投资 无套利 No-arbitrageState of Nature市场域 Market Span 套利 Arbitrage无套利和正线性定价规则 No-arbitrage and Positive Linear Pricing RuleImplication 1: One-price PrincipleImplication 2: PositivityImplication 3: AdditivityImplication 4: Homo…...
小程序容器助力智能移动门户统一
智能移动统一门户遵循“统一规划,统一标准,统一建设,统一运维”的指导思想。它灵活运用前端展示平台,微服务后端平台,流程引擎,规则引擎,非结构化数据平台,即时通讯平台,…...
opencv-python相机标定详解
文章目录 角点检测查看角点标定 opencv中内置了张正友的棋盘格标定法,通过一些姿态各异的棋盘格图像,就能标定相机的内外参数。 角点检测 第一步是角点检测,首先需要读取棋盘格图像 import numpy as np import cv2 import ospath imgs #…...
由斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名
由 Stanford Blockchain Accelerator、Zebec Protocol、 Nautilus Chain、Rootz Lab 共同主办的黑客松活动,现已接受优秀项目提交参赛申请。 在加密行业发展早期,密码极客们就始终在对区块链世界基础设施,在发展方向的无限可能性进行探索。而…...
PBDB Data Service:Measurements of specimens(标本测量)
Measurements of specimens(标本测量) 描述参数以下参数可用于指定您感兴趣的标本种类以下参数可用于筛选所选内容以下参数还可用于根据分类筛选结果列表以下参数可用于生成数据存档您可以使用以下参数选择要检索的额外信息,以及要获取记录的…...
低调的接口工具 ApiKit
最近发现一款接口测试工具--ApiKit,我们很难将它描述为一款接口管理工具 或 接口自测试工具。 官方给了一个简单的说明,更能说明 Apikit 可以做什么。 ApiKit API 管理 Mock 自动化测试 异常监控 团队协作 ApiKit的特点: 接口文档定义&a…...
opengauss 的回归测试
目录 一、回归测试说明 二、单独执行测试用例(开发调试) 一、回归测试说明 opengauss/postgresql 的回归测试,通过执行SQL比较输出打印,判断代码修改是否改变了其它功能逻辑。 OG的回归测试大体上和PG类似,主要是通…...
计算机组成原理基础练习题第四章-计算机的运算方法
对真值0表示形式唯一的机器数是()。A、原码 B、补码和移码C、反码 D、以上都不对在整数定点机中,下述说法正确的是()。A、原码和反码不能表示-1,补码可以表示-1B、三种机器数均可表示-1C、三种机器数均可表示…...
SpringBoot定时任务里的多线程
SpringBoot定时任务里的多线程 提示前言遇到的问题验证与解决验证单线程执行单任务分析代码及结果 单线程执行多任务 解决实现单任务的多线程为每个任务创建一个子线程 解决多任务的多线程设定固定容量线程池动态设定容量线程池固定线程池和动态线程池的选择 简单总结借鉴及引用…...
EMQX 在 K8s 环境部署 + 数据持久化 完整实操笔记
一、核心目标 在 K8s 集群中部署 EMQX 5.0.23,实现: Dashboard 管理员密码持久化(重启 Pod 不恢复默认); MQTT 消息持久化(保留消息重启后可读取); 生产级架构:Headless 服务(内部通信)+ NodePort 服务(外部访问)。 二、整体流程 & 问题解决(从 0 到生产) …...
从Flannel迁移到Calico:Kubernetes网络插件实战切换指南
1. 为什么需要从Flannel迁移到Calico? 很多刚开始接触Kubernetes的朋友都会选择Flannel作为默认网络插件,毕竟它简单易用,开箱即配。但当你需要更精细的网络控制时,Flannel就显得力不从心了。我去年负责的一个电商项目就遇到了这个…...
⾃动化测试常⽤函数(下)
等待通常代码执⾏的速度⽐⻚⾯渲染的速度要快,如果避免因为渲染过慢出现的⾃动化误报的问题呢?可 以使⽤selenium中提供的三种等待⽅法:强制等待Thread.sleep()优点:使⽤简单,调试的时候⽐较有效…...
蓝桥杯EDA省赛真题解析:从电路设计到实战技巧
1. 蓝桥杯EDA省赛真题核心考点剖析 参加蓝桥杯EDA竞赛的同学们都知道,省赛题目往往聚焦硬件设计的核心环节。从最近几届真题来看,以下几个模块出现频率最高: 首先是电源设计模块,这几乎是每届必考的内容。LDO线性稳压和BUCK开关电…...
Spring with AI (): 搜索扩展——向量数据库与RAG(上)劳
先回顾:三次握手(建立连接)核心流程(实际版) 为了让挥手流程衔接更顺畅,咱们先快速回顾三次握手的实际核心,避免上下文脱节: 第一步(客户端→服务器)&#…...
5分钟掌握艾尔登法环存档迁移工具:终极免费解决方案
5分钟掌握艾尔登法环存档迁移工具:终极免费解决方案 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 艾尔登法环存档迁移工具是一款专为《艾尔登法环》玩家设计的专业存档管理软件,能够…...
OpenClaw+优云智算Coding Plan:从灵感到成文,再到发布的全流程AI自动化鄙
1.安装环境准备 1.1.查看物理内存 [rootaiserver ~]# free -m 1.2.操作系统版本 [rootaiserver ~]# cat /etc/redhat-release 1.3.操作系统内存 [rootaiserver ~]# df -h /dev/shm/ 1.4.磁盘空间 [rootaiserver ~]# df -TH [rootaiserver ~]# df -h /tmp/ [rootaiserver ~]# d…...
终极glTF 2.0查看器:用Rust构建的高性能3D模型浏览器
终极glTF 2.0查看器:用Rust构建的高性能3D模型浏览器 【免费下载链接】gltf-viewer glTF 2.0 Viewer written in Rust 项目地址: https://gitcode.com/gh_mirrors/gl/gltf-viewer 想要在本地快速预览和查看glTF 3D模型吗?gltf-viewer正是你需要的…...
一物一码系统怎么搭建?从0到1的完整实施路径与避坑指南
在数字化转型浪潮中,一物一码已从"锦上添花"变为企业基础设施。但市面上方案繁杂,企业自建常陷入"技术选型迷茫"和"业务落地困难"。本文基于顶讯科技一物一码平台的底层架构逻辑,拆解系统搭建的完整路径&#…...
别再手动算增益了!用MATLAB的place函数5分钟搞定倒立摆极点配置
5分钟掌握MATLAB极点配置:用place函数高效设计倒立摆控制器 当你在实验室调试倒立摆时,是否曾被繁琐的增益计算困扰?传统手工推导需要解高阶方程组,不仅耗时还容易出错。实际上,MATLAB的place()函数能让你在5分钟内完成…...
