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网络编程示例(客户端与服务端)
Apr 24 Python
Python中的pass语句使用方法讲解
May 14 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
python实现发送邮件功能代码
Dec 14 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python socket聊天脚本代码实例
Jan 02 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
Python logging模块写入中文出现乱码
May 21 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
利用python爬取有道词典的方法
Dec 08 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中splitlines()方法的使用简介
2015/05/20 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
村干部承诺书
2014/03/28 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript