Python采集壁纸并实现炫轮播


Posted in Python onApril 30, 2022

亮点

1、系统性分析页面

2、多页面数据解析

3、海量图片数据保存

环境

python 3.8

pycharm 2021.2

requests pip install requests

parsel pip install parsel

模块安装问题

如果安装python第三方模块:

win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

在pycharm中点击Terminal(终端) 输入安装命令

如何配置pycharm里面的python解释器?

选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)

点击齿轮, 选择add

添加python安装路径

pycharm如何安装插件?

选择file(文件) >>> setting(设置) >>> Plugins(插件)

点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese

选择相应的插件点击 install(安装) 即可

安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

Python: 编程语言()

用计算机语言(0 1): 用来跟计算机进行交互的语言

翻译 英文单词翻译成 0 或者 1 python 3.8

实现一系列操作

代码编辑器: pycharm 2021.2

Python: 工具

内置模块

第三方模块

python 案例 (采集彼岸壁纸)

来到图片列表页面 进行点击操作 来到图片详情页

在图片详情页里面 点击图片

来到 大图页面 , 获取到图片

代码实现

  • 访问当图片列表页面(发送请求)
  • 获取数据
  • 解析数据
  • 发送请求(访问网站)

采集壁纸

# 导入工具
import requests
import parsel


for page in range(2, 16):
    url = f'http://www.netbian.com/meinv/index_{page}.htm'
    # 1. 发送请求
    response = requests.get(url)
    # 乱码
    response.encoding = 'gbk'
    # 2. 获取数据
    html_data = response.text
    # 3. 解析数据 图片链接获取到 提取出来
    selector = parsel.Selector(html_data)
    img_list = selector.css('.list img::attr(src)').getall()
    for img_url in img_list:
        # 小图片 >>> 大图片
        img_url = img_url.replace('small', '')
        # http://img.netbian.com/file/2022/0416/small0003229mRl41650038602.jpg
        img_url = img_url[:-14] + '.jpg'
        # 图片名称 提取出来
        img_name = img_url.split('/')[-1]
        # 直接获取图片二进制数据
        img_data = requests.get(img_url).content
        print(img_name)
        # 保存数据
        with open(f'img/{img_name}', mode='wb') as f:
            f.write(img_data)

自动换壁纸

import win32api
import win32con
import win32gui
import os
import time


def Windows_img(paperPath):
    k=win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control panel\\Desktop",0,win32con.KEY_SET_VALUE)
    # 在注册表中写入属性值
    win32api.RegSetValueEx(k,"wapaperStyle",0,win32con.REG_SZ,"2")  # 0 代表桌面居中 2 代表拉伸桌面
    win32api.RegSetValueEx(k,"Tilewallpaper",0,win32con.REG_SZ,"0")
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,paperPath,win32con.SPIF_SENDWININICHANGE) # 刷新桌面


def changeWallpaper():
    """文件夹/文件夹/图片"""
    # path=input('请输入文件路径:')
    path = r"C:\02-讲师文件夹\巳月公开课\课题\wallhaven\img"
    L2=os.listdir(path=path)  # 得到文件路径下的壁纸文件夹,列表类型
    i=0
    print(L2)   # 壁纸文件夹
    url_list = []
    for l2 in L2:
        detail_path = path + '\\' + l2
        L3 = os.listdir(detail_path)    # 得到壁纸文件夹路径下的图片,列表类型
        for l3 in L3:
            url_list.append(detail_path + '\\' + l3)
    print(url_list)
    while True:
        Windows_img(url_list[i])
        print('{}'.format(url_list[i]))
        time.sleep(2)  # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数
        i += 1
        if i == len(url_list):  # 如果是最后一张图片,则重新到第一张
            i = 0


def changeWallpaper_2():
    """文件夹/图片"""
    path = input('请输入文件路径:')
    # path = r"C:\02-讲师文件夹\巳月公开课\课题\回车桌面壁纸\img"
    L2=os.listdir(path=path)  # 得到文件路径下的图片,列表类型
    i=0
    print(L2)
    while True:
        Windows_img(path+'\{}'.format(L2[i]))
        print(path+'\{}'.format(L2[i]))
        time.sleep(10)  # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数
        i += 1
        if i==len(L2):  # 如果是最后一张图片,则重新到第一张
            i=0

if __name__ == '__main__':
    changeWallpaper_2()

到此这篇关于Python实现电脑壁纸的采集与轮换效果的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
Python每天必学之bytes字节
Jan 28 Python
Python走楼梯问题解决方法示例
Jul 25 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
Python适配器模式代码实现解析
Aug 02 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
Python实现名片管理系统
Feb 14 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
Python循环之while无限迭代
如何Python使用re模块实现okenizer
Apr 30 #Python
如何使用python包中的sched事件调度器
Apr 30 #Python
详解OpenCV获取高动态范围(HDR)成像
详解OpenCV曝光融合
python使用shell脚本创建kafka连接器
Apr 29 #Python
python中pycryto实现数据加密
Apr 29 #Python
You might like
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
js实现日历
2020/11/07 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
django正续或者倒序查库实例
2020/05/19 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
Structs界面控制层技术
2013/10/11 面试题
工程班组长岗位职责
2013/12/30 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
农贸市场管理制度
2014/01/31 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
党员创先争优活动总结
2014/05/04 职场文书
课程设计的心得体会
2014/09/03 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python