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

使用R爬取Spotify Top 200流媒体数据遇问题求助

解决Spotify Top 200榜单爬取问题

一、当前是否仍可爬取?

可以爬取,Spotify榜单页面仅更新了前端结构,未完全禁止静态爬取(注意控制请求频率,避免被限制访问)。

二、调整后的爬取方案(R脚本)

1. 所需依赖包

先安装并加载核心工具包:

install.packages(c("rvest", "dplyr", "purrr"))
library(rvest)
library(dplyr)
library(purrr)

2. 单日期单地区爬取示例

以全球每日最新榜单为例,适配新页面的HTML结构:

# 目标URL(格式参考:https://charts.spotify.com/charts/view/regional-{地区代码}-daily-{YYYY-MM-DD},可替换指定日期/地区)
url <- "https://charts.spotify.com/charts/view/regional-global-daily/latest"

# 读取并解析页面
page <- read_html(url)
spotify_data <- page %>%
  html_element(".chart-table") %>%
  html_table(header = TRUE) %>%
  as_tibble()

# 查看结果
head(spotify_data)

3. 批量爬取(跨多年、多地区)

(1)生成日期序列

示例生成2023年1月1日至1月7日的日期:

start_date <- as.Date("2023-01-01")
end_date <- as.Date("2023-01-07")
date_sequence <- seq(start_date, end_date, by = "day")
date_str <- format(date_sequence, "%Y-%m-%d")

(2)定义目标地区代码

可根据需求添加更多地区,比如全球(global)、美国(us)、英国(gb):

regions <- c("global", "us", "gb")

(3)批量爬取函数

scrape_spotify_charts <- function(region, date_str) {
  # 构造目标URL
  url <- paste0("https://charts.spotify.com/charts/view/regional-", region, "-daily-", date_str)
  
  # 防反爬延迟
  Sys.sleep(2)
  
  tryCatch({
    page <- read_html(url)
    data <- page %>%
      html_element(".chart-table") %>%
      html_table(header = TRUE) %>%
      as_tibble() %>%
      mutate(Region = region, Date = date_str)
    return(data)
  }, error = function(e) {
    message(paste("爬取失败:", region, date_str, ",错误信息:", e$message))
    return(tibble())
  })
}

# 执行批量爬取
all_data <- cross_df(list(Region = regions, Date = date_str)) %>%
  rowwise() %>%
  mutate(data = list(scrape_spotify_charts(Region, Date))) %>%
  unnest(data)

三、关键调整说明

旧指南依赖的HTML节点已失效,当前榜单数据统一在class为"chart-table"的表格中,直接用html_element(".chart-table")即可定位到核心数据区域。

四、注意事项

  • 控制请求间隔(建议2-3秒/次),避免触发Spotify的反爬限制
  • 部分早期历史榜单可能已被移除,爬取时会返回空数据,需做好异常捕获
  • 若后续页面再次更新,可通过浏览器开发者工具(F12→元素面板)重新定位表格节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:55:41