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使用in操作符时元组和数组的区别分析
May 19 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
Django 生成登陆验证码代码分享
Dec 12 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
Flask-WTF表单的使用方法
Jul 12 Python
Jupyter加载文件的实现方法
Apr 14 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
PHP 读取和编写 XML
2014/11/19 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
分享php多功能图片处理类
2016/05/15 PHP
php实现等比例压缩图片
2018/07/26 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
python 图片验证码代码
2008/12/07 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python3.x实现发送邮件功能
2018/05/22 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
基于Python实现粒子滤波效果
2020/12/01 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
竞选学委演讲稿
2014/09/13 职场文书
教师师德承诺书2016
2016/03/25 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技