本帖最后由 凯观生活 于 2024-1-2 02:06 编辑
下面为源码,可以打包成exe文件使用。
[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()
本文章(以下简称“文章”)旨在促进技术交流和学习。这些文章仅代表作者个人观点,不代表任何公司、组织或个人。
在阅读、下载、复制、传播或以其他方式使用文章内容时,请注意以下几点:
合法用途:文章仅可用于技术交流、学习和个人非商业目的。您不得以任何方式将文章内容用于违反法律、法规、道德准则或其他不合规的用途。
文章准确性和完整性:文章中的信息可能会有所疏漏或不完整。您需自行承担使用文章中的信息所带来的风险,并在适用的情况下寻求专业建议。作者和本博客/网站对文章中的错误或不足之处不承担任何责任。
衍生作品:如需基于文章创作衍生作品,请事先获得作者的书面许可,并确保遵循相关许可条款。
担保和声明:作者和本博客/网站明确否认对文章的适用性、充分性、准确性、可靠性或完整性作出任何明示或默示的担保和声明。
如您违反上述条款,作者和本博客/网站保留随时终止您使用文章、追究法律责任并要求赔偿损失的权利。
|