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 11 Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
Python 函数list&read&seek详解
Aug 28 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
如何用python免费看美剧
Aug 11 Python
Python合并多张图片成PDF
Jun 09 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
很好用的PHP数据库类
2009/05/27 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
基于node实现websocket协议
2016/04/25 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
如何把python项目部署到linux服务器
2020/08/26 Python
Numpy数组的广播机制的实现
2020/11/03 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
运动会四百米广播稿
2014/01/19 职场文书
事假请假条范文
2014/04/11 职场文书
政风行风整改报告
2014/11/06 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
先进单位事迹材料
2014/12/25 职场文书
房产公证书格式
2015/01/26 职场文书
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
Vue监视数据的原理详解
2022/02/24 Vue.js
python对文档中元素删除,替换操作
2022/04/02 Python
详解MySQL的内连接和外连接
2023/05/08 MySQL