You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python提取Google Sheet单元格中|分隔的多URL并下载

这事儿不难,我给你整理了一套完整的Python实现方案,分分钟搞定URL拆分和文件下载:

实现步骤与代码示例

1. 先搞定依赖安装

我们会用到requests库处理HTTP下载,如果需要直接从Google Sheet读取内容,还要装gspread和oauth2client。打开终端执行:

# 基础下载功能所需
pip install requests

# 如果要直接读Google Sheet,额外装这个
pip install gspread oauth2client

2. 核心实现代码

下面的代码包含URL拆分和文件下载的完整逻辑,还做了异常处理和文件名自动提取:

import requests
from urllib.parse import urlparse

def download_files_from_urls(url_string):
    # 拆分|分隔的URL,过滤掉空字符串,同时去掉每个URL前后的空格
    urls = [url.strip() for url in url_string.split('|') if url.strip()]
    
    for url in urls:
        try:
            # 流式下载大文件,避免内存溢出
            response = requests.get(url, stream=True)
            response.raise_for_status()  # 请求失败时直接抛出异常
            
            # 从URL路径中提取原始文件名
            parsed_url = urlparse(url)
            filename = parsed_url.path.split('/')[-1]
            
            # 写入本地文件
            with open(filename, 'wb') as file:
                for chunk in response.iter_content(chunk_size=8192):
                    file.write(chunk)
            
            print(f"✅ 成功下载:{filename}")
        except Exception as e:
            print(f"❌ 下载失败 {url}:{str(e)}")

# 测试用的示例字符串(替换成你从Google Sheet拿到的内容)
sample_url_str = "https://www.jotform.com/uploads/prashant1508/201524278582053/4779305729913336783/Ashish Kumar_2020-Sep-21_2020-Oct-06.xlsx.xlsx | https://www.jotform.com/uploads/prashant1508/201524278582053/4779305729913336783/Brijesh Gupta_2020-Sep-17_2020-Oct-02.xlsx.xlsx | https://www.jotform.com/uploads/prashant1508/201524278582053/4779305729913336783/Dhanveer_2020-Sep-16_2020-Sep-30.xlsx.xlsx"

# 执行下载
download_files_from_urls(sample_url_str)

3. 可选:直接从Google Sheet读取URL

如果不想手动复制单元格内容,可以用gspread直接读取。步骤如下:

  1. 去Google Cloud控制台创建服务账号,下载JSON密钥文件
  2. 把你的Google Sheet共享给服务账号的邮箱
  3. 运行下面的代码读取单元格:
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 授权访问Google Drive和Sheet
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('你的密钥文件名.json', scope)
client = gspread.authorize(creds)

# 打开目标表格和工作表(替换成你的表格名和工作表名)
spreadsheet = client.open('我的表格').sheet1
# 读取指定单元格的内容(比如第2行第3列,行号列号从1开始)
url_str_from_sheet = spreadsheet.cell(2, 3).value

# 调用下载函数
download_files_from_urls(url_str_from_sheet)

一些小提示

  • stream=True:适合下载大文件,不会一次性把整个文件加载到内存
  • 异常处理:覆盖了网络错误、无效URL等常见问题,方便排查问题
  • 文件名提取:用urlparse从URL路径里拿原始文件名,避免手动命名出错

内容的提问来源于stack exchange,提问作者Manasa Javvaji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:57:56