python实现桌面壁纸切换功能


Posted in Python onJanuary 21, 2019

本文实例为大家分享了python实现桌面壁纸切换功能的具体实现方法,供大家参考,具体内容如下

大体分为两个部分

一、利用爬虫爬取壁纸

第一部分爬取图片url地址并且下载至本地
爬虫针对 http://image.so.com/ 【360壁纸写的】,如果要更换url地址自己改改

import requests
import json
import random
import os
#存放Ajax图片地址数据 
img_url_dict={}
#创建图片tmp文件夹
if not os.path.exists('image'):
  os.mkdir('image')
#爬取图片url地址
def getImgurl(root_url,sn):
  params={
    'ch': 'wallpaper',
    't1': 157,
    'sn': sn,
    'listtype': 'new',
    'temp': 1
  }
  headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36(KHTML, like Gecko)Chrome/62.0 3202.62 Safari / 537.36'
  }
  try:
    response=requests.get(root_url,params=params,headers=headers)
  except RequestException:
    return None
  data=json.loads(response.text).get('list')
  img_url_list=[]
  for item in data:
    img_url_list.append(item.get('cover_imgurl'))
  img_url_dict[sn]=img_url_list
#下载图片
def download_image(name,image_url):
  try:
    response=requests.get(image_url)
  except RequestException:
    return "图像请求出错"
  file_name='{}/{}.{}'.format('image',name,'bmp');
  with open(file_name,'wb') as file:
    file.write(response.content)
#获取随机url地址并下载至image文件夹
def get_img():
  sn=30*random.randint(1,15)
  try:
    img_url_dict[sn]
  except KeyError:
    getImgurl('http://image.so.com/zj',sn)
  index=random.randint(0,len(img_url_dict[sn])-1)
  url=img_url_dict[sn][index]
  download_image('wallpaper',url)

二、更换桌面壁纸

第二部分将下载的图片作为壁纸,间隔一定时间重新下载,再切换壁纸
这部分借用python实现windows壁纸定期更换功能

import win32api, win32gui, win32con
import time
def setWallPaper(pic):
  # open register
  regKey = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
  win32api.RegSetValueEx(regKey,"WallpaperStyle", 0, win32con.REG_SZ, "2")
  win32api.RegSetValueEx(regKey, "TileWallpaper", 0, win32con.REG_SZ, "0")
  # refresh screen
  win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,pic, win32con.SPIF_SENDWININICHANGE)
if __name__=='__main__':
  while True:
    get_img()
    pic='your_path/image/wallpaper.bmp'#写绝对路径
    setWallPaper(pic)
    time.sleep(6)#6s切换一次壁纸

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python使用sorted排序的方法小结
Jul 28 Python
python difflib模块示例讲解
Sep 13 Python
Python解决走迷宫问题算法示例
Jul 27 Python
Flask框架单例模式实现方法详解
Jul 31 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
如何解决django-celery启动后迅速关闭
Oct 16 Python
python交互模式基础知识点学习
Jun 18 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
python 读取串口数据的示例
Nov 09 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python编写nmap扫描工具
Jul 21 Python
在Python中通过getattr获取对象引用的方法
Jan 21 #Python
python实现windows壁纸定期更换功能
Jan 21 #Python
PyQt5+requests实现车票查询工具
Jan 21 #Python
Python设计模式之策略模式实例详解
Jan 21 #Python
Python设计模式之装饰模式实例详解
Jan 21 #Python
python利用Tesseract识别验证码的方法示例
Jan 21 #Python
对python过滤器和lambda函数的用法详解
Jan 21 #Python
You might like
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
php类自动加载器实现方法
2015/07/28 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
express express-session的使用小结
2018/12/12 Javascript
小程序实现分类页
2019/07/12 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
Python 数据结构之旋转链表
2017/02/25 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
在django中自定义字段Field详解
2019/12/03 Python
浅析python标准库中的glob
2020/03/13 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
商务英语广告词大全
2014/03/18 职场文书
解除租赁合同协议书
2016/03/21 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
angular异步验证器防抖实例详解
2022/03/31 Javascript