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脚本将绝对url替换为相对url的教程
Apr 24 Python
Python中几个比较常见的名词解释
Jul 04 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
python实现发送邮件功能
Jul 22 Python
Python日期的加减等操作的示例
Aug 15 Python
分析python切片原理和方法
Dec 19 Python
python opencv 直方图反向投影的方法
Feb 24 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 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 session和cookie使用说明
2010/04/07 PHP
PHP 面向对象详解
2012/09/13 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
许愿墙中用到的函数
2006/10/07 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
基于Python实现的微信好友数据分析
2018/02/26 Python
python在文本开头插入一行的实例
2018/05/02 Python
python写入已存在的excel数据实例
2018/05/03 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
灵泰克Java笔试题
2016/01/09 面试题
结婚当天新郎保证书
2015/05/08 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js