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压缩和解压缩zip文件
Feb 14 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
一篇文章了解Python中常见的序列化操作
Jun 20 Python
对Python中画图时候的线类型详解
Jul 07 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
react+django清除浏览器缓存的几种方法小结
Jul 17 Python
Python求解正态分布置信区间教程
Nov 20 Python
django-csrf使用和禁用方式
Mar 13 Python
Python如何给你的程序做性能测试
Jul 29 Python
python基础之函数的定义和调用
Oct 24 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 数字左侧自动补0
2008/03/31 PHP
php程序之die调试法 快速解决错误
2009/09/17 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
django中的ajax组件教程详解
2018/10/18 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python连接phoenix的方法示例
2017/09/29 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
新手学python应该下哪个版本
2020/06/11 Python
党课知识竞赛主持词
2014/04/01 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
赔偿协议书范本
2014/09/12 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers