哦吼
哦吼
发布于 2024-01-01 / 44 阅读
0
0

必应(Bing)网站每日一图下载工具Python源码

必应(Bing)网站每日一图下载工具Python源码

# -*- coding: utf-8 -*-
import os
import tkinter as tk
import urllib.request
from tkinter import messagebox

import requests


def download_bing_images():
    # Bing 每日一图的 URL
    url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=8&mkt=zh-CN'
    response = requests.get(url)
    data = response.json()

    # 创建一个文件夹来保存图片
    if not os.path.exists('bing_images'):
        os.makedirs('bing_images')

    # 遍历每日一图的数据并下载图片
    for image_data in data['images']:
        image_name = image_data['hsh']
        image_url = f'https://cn.bing.com{image_data["url"]}'

        try:
            # 下载图片
            with urllib.request.urlopen(image_url) as response:
                image_data = response.read()
                with open(f'bing_images/{image_name}.jpg', 'wb') as f:
                    f.write(image_data)

            print(f'图片 {image_name}.jpg 已成功下载!')
            progress_label.config(text=f'图片 {image_name}.jpg 已成功下载!')
        except Exception as e:
            print(f'下载失败:{str(e)}')
            progress_label.config(text=f'下载失败:{str(e)}')

def on_button_click():
    try:
        # 清除之前的下载进度信息
        progress_label.config(text='')

        # 下载 Bing 每日一图
        download_bing_images()

        # 显示下载完成提示
        progress_label.config(text='所有图片已下载完成!\n请查看当前目录对应的“bing_images”文件夹')
    except Exception as e:
        messagebox.showerror('错误', f'下载失败:\n{str(e)}')

# 创建主窗口
root = tk.Tk()
root.title('Bing 每日一图下载器')
root.geometry('400x300')  # 设置窗口大小

# 创建按钮
button = tk.Button(root, text='下载 Bing 每日一图', command=on_button_click)
button.pack(padx=20, pady=20)

# 创建标签用于显示下载进度和结果
progress_label = tk.Label(root, text='')
progress_label.pack(padx=20, pady=20)

# 运行主循环
root.mainloop()

本博客/网站上的文章(以下简称“文章”)旨在促进技术交流和学习。这些文章仅代表作者个人观点,不代表任何公司、组织或个人。

在阅读、下载、复制、传播或以其他方式使用文章内容时,请注意以下几点:

  1. 合法用途:文章仅可用于技术交流、学习和个人非商业目的。您不得以任何方式将文章内容用于违反法律、法规、道德准则或其他不合规的用途。

  2. 文章准确性和完整性:文章中的信息可能会有所疏漏或不完整。您需自行承担使用文章中的信息所带来的风险,并在适用的情况下寻求专业建议。作者和本博客/网站对文章中的错误或不足之处不承担任何责任。

  3. 衍生作品:如需基于文章创作衍生作品,请事先获得作者的书面许可,并确保遵循相关许可条款。

  4. 担保和声明:作者和本博客/网站明确否认对文章的适用性、充分性、准确性、可靠性或完整性作出任何明示或默示的担保和声明。

如您违反上述条款,作者和本博客/网站保留随时终止您使用文章、追究法律责任并要求赔偿损失的权利。


评论