当前位置:   article > 正文

python实现动态桌面壁纸(精简)_python动态壁纸源代码

python动态壁纸源代码

众所周知,一个良好的桌面壁纸能提高写代码的心情,也能加强在电脑面前吃泡面的食欲 但是找到一个合适壁纸是多么麻烦是事情,所以很多小伙伴不想麻烦,于是我的想法诞生了

先看效果图

只需要双击图标就可以切换下一张图片

还可以定时自动更换壁纸(后面详细介绍)

 

 

执行逻辑:

1.先去寻找高清壁纸网站

2.编写爬虫将大量图片保存到本地

3.编写代码将图片设置为壁纸

4.增加定时更新模块

一、目标地址

https://pic.netbian.com

二、爬虫代码

  1. '''
  2. 目标网站: https://pic.netbian.com
  3. '''
  4. from requests_html import HTMLSession
  5. import re,os
  6. import requests
  7. from tqdm import tqdm
  8. from functools import partial
  9. from multiprocessing import Pool
  10. session = HTMLSession()
  11. # 获取下载链接
  12. def get_urllist(addr):
  13. '''
  14. :addr: 传入该网站一个地址
  15. :return: 返回一个高清大图下载地址字典(标题:url)
  16. '''
  17. addr = f'https://pic.netbian.com{addr}'
  18. r = session.get(addr)
  19. # // 查看页面内容
  20. # print(r.html.html)
  21. # 获取链接
  22. # print(r.html.links) # 所有链接
  23. url_list = r.html.absolute_links # 绝对链接
  24. # print(url_list)
  25. rule = re.compile('(https://pic.netbian.com/tupian/[0-9]{1,9}.html)')
  26. href_list = re.findall(rule,str(url_list))
  27. # print(href_list)
  28. # print('获取图片:',len(href_list))
  29. # 请求进去得到高清壁纸
  30. complete_url_dict = {}
  31. for i in href_list:
  32. response = session.get(i)
  33. # print(response.html.html)
  34. # 获取部分url
  35. imperfect_url = response.html.xpath("//a[@id='img']/img/@src",first=True)
  36. title = response.html.xpath("//a[@id='img']/img/@title",first=True)
  37. # 拼接完整url
  38. url = f'https://pic.netbian.com{imperfect_url}'
  39. complete_url_dict.update({url:title})
  40. return complete_url_dict
  41. # 下载图片
  42. def download(url_dict,save_path):
  43. '''
  44. :save_path: 保存目录
  45. :param url_dict: 图片下载地址列表
  46. :return:
  47. '''
  48. # print(url_dict)
  49. name_list = os.listdir(save_path)
  50. # print(name_list)
  51. # for url,title in tqdm(url_dict.items()):
  52. url = url_dict[0]
  53. title = url_dict[1]
  54. if f'{title}.jpg' in name_list:
  55. print(title,'已存在...跳过!')
  56. pass
  57. else:
  58. with open(f'{save_path}/{title}.jpg', mode='wb') as f:
  59. f.write(requests.get(url).content)
  60. # print(title,':写入成功!')
  61. if __name__ == '__main__':
  62. # 根据网站创建图片分类
  63. dic = {
  64. '4k风景':'/4kfengjing/',
  65. '4k美女':'/4kmeinv/',
  66. '4k游戏': '/4kyouxi/',
  67. '4k动漫': '/4kdongman/',
  68. '4k影视': '/4kyingshi/',
  69. '4k汽车': '/4kqiche/',
  70. '4k动物': '/4kdongwu/',
  71. '4k人物': '/4krenwu/',
  72. '4k美食': '/4kmeishi/',
  73. '4k宗教': '/4kzongjiao/',
  74. '4k背景': '/4kbeijing/',
  75. '4k手机壁纸': '/shoujibizhi/',
  76. }
  77. # url:title 字典
  78. print('图片下载器'.center(50,'='))
  79. for id,i in enumerate(dic.keys()):
  80. print(f'{id+1}.{i}')
  81. print(''.center(50, '='))
  82. try:
  83. idd = int(input('请选择图片序号:'))-1
  84. num = int(input('请选择下载页数:'))
  85. if num > 10:
  86. print('为确保安全,最多下载10页!!')
  87. num = 10
  88. if num <= 0:
  89. print('1<下载页数<10')
  90. exit()
  91. except:
  92. print('请输入数字!')
  93. exit()
  94. print('正在获取下载链接-/-/')
  95. name = list(dic.keys())[idd]
  96. # 第一页链接
  97. url_dict = get_urllist(dic[name])
  98. # 后几页链接
  99. for x in range(1,num):
  100. url_dict.update(get_urllist(dic[name]+f'index_{x+1}.html'))
  101. print('下载图片张数:',len(url_dict))
  102. save_path = f'./图片/{name}'
  103. if not os.path.exists(save_path):
  104. os.mkdir(save_path)
  105. # print(url_dict)
  106. # 下载图片
  107. # download(url_dict,save_path)
  108. print('正在下载-/-/')
  109. func = partial(download, save_path=save_path)
  110. pool = Pool(10)
  111. r = list(tqdm(pool.imap(func, url_dict.items()), total=len(url_dict.items()), ncols=80))
  112. pool.close()
  113. pool.join()

运行效果如下:

三、将图片设置为桌面背景

  1. import os
  2. import random
  3. import ctypes
  4. def fun(path):
  5. # path = r"E:\py开发环境\图片\4k动物" # 存储图片的文件夹
  6. file = os.listdir(path) # 打开文件夹
  7. filepath = f" {path}\\{random.choice(file)}" # 随机选取某张图片,拼接绝对地址
  8. print(filepath)
  9. ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0) # 设置桌面壁纸
  10. fun(r"E:\py开发环境\图片\4k风景")

四、增加定时(每隔30分钟刷新一次壁纸)

while 1:
    path = r"E:\py开发环境\图片\4k动漫"# // 存储图片的文件夹
    fun(path)
    time.sleep(1800)

五、最后换一个图标,双击运行,大工告成

注意点:后面运行双击py文件时 会出现弹窗 需要将.py修改为.pyw即可

                                                                                  以上内容仅仅只做学习交流,切勿用做其他

欢迎一起学习进步wx:py-open-cv

                                                                                                                 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/812536
推荐阅读
相关标签
  

闽ICP备14008679号