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

如何通过代码自动下载Spotify全球榜单的CSV文件?

解决Spotify每日全球榜单CSV自动下载问题

单日CSV下载方案

Spotify的每日榜单CSV有公开的API接口,不需要通过网页抓取按钮,直接构造请求URL即可获取数据。

核心思路

榜单CSV的URL格式为:

https://charts.spotify.com/api/charts/regional/global/daily/{YYYY-MM-DD}

将{YYYY-MM-DD}替换为目标日期(比如2024-05-20),直接请求该URL就能得到完整的CSV内容。

Python代码实现

import requests

# 目标日期,格式必须为YYYY-MM-DD
target_date = "2024-05-20"
api_url = f"https://charts.spotify.com/api/charts/regional/global/daily/{target_date}"

# 发送请求并保存CSV
try:
    response = requests.get(api_url)
    response.raise_for_status()  # 捕获HTTP请求错误
    
    # 保存文件
    file_name = f"spotify_global_daily_{target_date}.csv"
    with open(file_name, "w", encoding="utf-8") as f:
        f.write(response.text)
    
    print(f"单日榜单CSV已保存为: {file_name}")
except Exception as e:
    print(f"下载失败: {str(e)}")

批量下载2017年1月至今的榜单

基于上述API,可以通过生成日期范围循环请求,实现批量下载。

Python代码实现

import requests
import os
from datetime import datetime, timedelta
import time

# 配置参数
start_date = datetime(2017, 1, 1)
end_date = datetime.now()  # 下载到当前日期,可自行修改
save_dir = "spotify_global_charts"
request_interval = 1  # 每次请求间隔1秒,避免触发反爬

# 创建保存目录
os.makedirs(save_dir, exist_ok=True)

current_date = start_date
while current_date <= end_date:
    date_str = current_date.strftime("%Y-%m-%d")
    api_url = f"https://charts.spotify.com/api/charts/regional/global/daily/{date_str}"
    
    try:
        response = requests.get(api_url)
        response.raise_for_status()
        
        # 保存文件到指定目录
        file_path = os.path.join(save_dir, f"spotify_global_daily_{date_str}.csv")
        with open(file_path, "w", encoding="utf-8") as f:
            f.write(response.text)
        
        print(f"✅ 成功下载: {date_str}")
    except requests.exceptions.HTTPError as e:
        print(f"❌ 下载失败 {date_str}: {e}")
    except Exception as e:
        print(f"❌ 处理异常 {date_str}: {str(e)}")
    
    # 日期递增1天
    current_date += timedelta(days=1)
    time.sleep(request_interval)

注意事项

  • 保持请求间隔,避免短时间内大量请求导致IP被限制
  • 部分早期日期可能无数据,代码中的异常处理会自动跳过并提示
  • 确保安装了requests库,可通过pip install requests安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:03:11