返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始
开启辅助访问

登录  | 注册成为修仙之旅的少年~

游客您好!登录后享受更多精彩

QQ登录

只需一步,快速开始

查看: 776|回复: 0

[原创] 【原创】Python 下载URL图片到本地

[复制链接]
发表于 2025-5-15 16:22:57 | 显示全部楼层 |阅读模式

少侠不来段修仙之旅吗~

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
本帖最后由 da11 于 2025-5-15 16:24 编辑

Python 下载URL图片到本地


# 直接上代码:

import requests
import os
from urllib.parse import unquote  # 用于解码URL中的特殊字符

def download_image(url, save_dir="images", filename=None):
    """
    根据URL下载图片到本地

    :param url: 图片的完整URL
    :param save_dir: 保存目录(默认当前目录下的images文件夹)
    :param filename: 自定义文件名(默认从URL中提取)
    :return: 成功返回保存路径,失败返回None
    """
    try:
        # 创建保存目录
        os.makedirs(save_dir, exist_ok=True)

        # 发送HTTP请求
        response = requests.get(url, stream=True, timeout=10)
        response.raise_for_status()  # 如果状态码非200,抛出异常

        # 提取文件名
        if not filename:
            # 从URL中解码并提取文件名(例如: → image.jpg)
            filename = unquote(url).split('/')[-1].split('?')[0]
            if not filename:
                raise ValueError("无法从URL中提取文件名")

        # 拼接保存路径(兼容Windows/Linux)
        save_path = os.path.join(save_dir, filename)

        # 保存图片(二进制写入)
        with open(save_path, 'wb') as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)

        print(f"图片已保存至:{save_path}")
        return save_path

    except Exception as e:
        print(f"下载失败:{str(e)}")
        return None

# 示例用法
img_save_path = download_image("https://www.baidu.com/test.png")   # URL请替换为实际地址

*滑块验证:

本版积分规则

DA论坛飞机票来了~

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表