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之传说中的函数编写条规
Oct 11 Python
基于python编写的微博应用
Oct 17 Python
Python实现约瑟夫环问题的方法
May 03 Python
Python程序中设置HTTP代理
Nov 06 Python
pycharm安装和首次使用教程
Aug 27 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
Python按钮的响应事件详解
Mar 04 Python
使用python实现简单五子棋游戏
Jun 18 Python
Django结合ajax进行页面实时更新的例子
Aug 12 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
方法汇总:Python 安装第三方库常用
Apr 26 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
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
django之session与分页(实例讲解)
2017/11/13 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
python创建文件备份的脚本
2018/09/11 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
Python FFT合成波形的实例
2019/12/04 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
三星法国官方网站:Samsung法国
2019/10/31 全球购物
七年级历史教学反思
2014/02/05 职场文书
寄语学生的话
2014/04/10 职场文书
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers