由于文章中使用的接口并不是很稳定(会时常出现失效情况),重找了个接口,并将代码重构了(优化版)文章地址:https://xycz.xyz/archives/优化版python获取当日必应壁纸并自动设置为桌面壁纸

起因:必应官方是有这类工具的,但是下载下来有水印,然后找到了别人用易语言开发的无水印版,前几日突然失效了,一直无法下载壁纸,就想着自己写一个

  1. 分析需求
  2. 设计程序
  3. 编写代码
  4. 调试程序

分析需求

实现下载必应当日壁纸并设置为桌面壁纸

设计程序

  1. 请求对象的定制
  2. 获取响应数据
  3. 下载图片
  4. 设置为桌面壁纸
  5. 将 .py 文件打包成后缀为 .exe 的文件

请求对象的定制

  1. url组成:其 url 为https://bing.ioliu.cn/?p= + 页码
  2. 获取请求头
  3. 请求对象的定制
  4. 返回请求对象

获取响应数据

  1. 模拟浏览器向服务器发送请求
  2. 获取响应数据
  3. 返回响应数据

下载图片

  1. 使用 xpath 解析服务器响应文件
  2. 使用 xpath 获取当日的壁纸的下载路径
  3. 使用 urllib 下载壁纸

将下载下来的图片设置为桌面壁纸

将 .py 文件转成 .exe 文件

  1. 安装 PyInstaller 模块
    pip install PyInstaller
  2. 将 .py 文件打包成 .exe 文件
    找到需要打包的 .py 文件路径,在地址栏输入 cmd,打开命令窗口后输入
    pyinstaller -F 文件名.py
    执行完毕后会生成三个文件夹,生成的 .exe 文件就在 dist 文件夹中
import urllib.request
from lxml import etree
import time
import ctypes

def create_request(page):
    url = 'https://bing.ioliu.cn/?p=' + str(page)
 
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29'
    }

    request = urllib.request.Request(url=url,headers=headers)

    return request
    
def get_content(request):
    response = urllib.request.urlopen(request)

    content = response.read().decode('utf-8')

    return content

def down_load(content):
    # 下载图片
    # urllib.request.urlretrieve('图片地址','文件的名字')
    tree = etree.HTML(content)

    src = tree.xpath('//div[@class="container"]//div[1]//div[1]//img/@src')

    name = time.strftime("%Y%m%d",time.localtime())

    url = src[0].replace("640x480","1920x1080")
    filename = 'D:/IDM download/images/'+ name + '.jpg'
    urllib.request.urlretrieve(url=url,filename=filename)

    return filename

if __name__ == '__main__':

    # 1.请求对象的定制
    request = create_request(2)
    # 2.获取网页的源码
    content = get_content(request)
    # 3.下载
    filename = down_load(content)
    
    ctypes.windll.user32.SystemParametersInfoW(20, 0, filename , 0)

文章作者: 临川
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 临川羡鱼
Python Python
喜欢就支持一下吧