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定时任务里的多线程 提示前言遇到的问题验证与解决验证单线程执行单任务分析代码及结果 单线程执行多任务 解决实现单任务的多线程为每个任务创建一个子线程 解决多任务的多线程设定固定容量线程池动态设定容量线程池固定线程池和动态线程池的选择 简单总结借鉴及引用…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
