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 socket网络编程之粘包问题详解
Apr 28 Python
Django框架多表查询实例分析
Jul 04 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
Mar 29 Python
对Python函数设计规范详解
Jul 19 Python
python 实现检验33品种数据是否是正态分布
Dec 09 Python
Python3 实现爬取网站下所有URL方式
Jan 16 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
基于python爬取梨视频实现过程解析
Nov 09 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 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超牛逼无限极分类生成树方法
2015/05/11 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
Python open读写文件实现脚本
2008/09/06 Python
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
授权委托书怎么写
2014/04/03 职场文书
我爱我校演讲稿
2014/05/21 职场文书
活动新闻稿范文
2015/07/17 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
转变工作作风心得体会
2016/01/23 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS