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 正则表达式的高级用法
Dec 04 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python编程argparse入门浅析
Feb 07 Python
Python3中详解fabfile的编写
Jun 24 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
python实现倒计时小工具
Jul 29 Python
python构建指数平滑预测模型示例
Nov 21 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
django上传文件的三种方式
Apr 29 Python
python中取整数的几种方法
Nov 07 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
js option删除代码集合
2008/11/12 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Django集成CAS单点登录的方法示例
2019/06/10 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
Python dict的常用方法示例代码
2020/06/23 Python
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
党员自我批评与反省材料
2014/02/10 职场文书
转让协议书范本
2014/04/15 职场文书
Vue.Draggable实现交换位置
2022/04/07 Vue.js