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

如何爬取Spotify Charts城市周榜的歌曲数据?

解决Spotify城市周榜数据爬取问题

你的问题出在页面歌曲数据是动态加载的:直接用requests获取的只是页面的静态框架,实际榜单数据是浏览器加载页面后通过异步请求获取的,所以静态HTML里没有歌曲信息。下面提供两种可行的解决方法:

方法1:直接调用数据接口(推荐)

Spotify Charts的实际数据是通过API接口返回的,你可以通过浏览器开发者工具找到这个接口:

  1. 打开目标榜单页面,按F12打开开发者工具,切换到「Network」标签
  2. 刷新页面,筛选「XHR/Fetch」类型的请求,找到包含api/charts/view路径的请求
  3. 复制该请求的URL,直接用requests请求即可拿到JSON格式的完整数据

示例代码:

import requests

# 替换为你找到的API接口URL,注意是api路径而非页面路径
api_url = 'https://charts.spotify.com/api/charts/view/citytoptrack-barcelona-weekly/2024-02-29'
response = requests.get(api_url)
chart_data = response.json()

# 提取并打印歌曲信息
for track in chart_data['tracks']:
    print(f"排名:{track['rank']}")
    print(f"歌曲名:{track['trackName']}")
    print(f"歌手:{track['artists']}")
    print(f"播放量:{track['streams']}")
    print("---")

方法2:用Selenium模拟浏览器渲染

如果找不到接口或接口有反爬限制,可以用Selenium模拟浏览器加载完整页面后提取数据:

  1. 先安装依赖:pip install selenium
  2. 下载对应浏览器的驱动(比如ChromeDriver),并配置好路径

示例代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import time

# 初始化Chrome驱动,替换为你的ChromeDriver路径
service = Service('chromedriver.exe')  # Windows系统,Mac/Linux请调整路径
driver = webdriver.Chrome(service=service)

# 打开目标页面
driver.get('https://charts.spotify.com/charts/view/citytoptrack-barcelona-weekly/2024-02-29')
time.sleep(3)  # 等待页面加载完成

# 提取榜单数据
track_rows = driver.find_elements(By.CSS_SELECTOR, '.chart-table-row')
for row in track_rows:
    rank = row.find_element(By.CSS_SELECTOR, '.chart-table-position').text
    track_name = row.find_element(By.CSS_SELECTOR, '.chart-table-track-name').text
    artist = row.find_element(By.CSS_SELECTOR, '.chart-table-track-artists').text
    streams = row.find_element(By.CSS_SELECTOR, '.chart-table-streams').text
    print(f"排名:{rank} | 歌曲:{track_name} | 歌手:{artist} | 播放量:{streams}")

# 关闭浏览器
driver.quit()

注意事项

  • 优先使用API接口的方式,效率更高且资源消耗小
  • 无论哪种方式,都不要频繁发送请求,避免触发网站的反爬机制,可适当添加请求间隔
  • 使用Selenium时,注意调整等待时间,确保页面元素完全加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:13:17