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

Selenium定位Spotify登录按钮失败及免登录爬取方案咨询

解决Spotify榜单爬取的两个问题

一、修复Selenium定位登录按钮的错误

你遇到的NoSuchElementException有两个核心原因:

  1. 原代码定位的是button标签,但实际登录按钮是a标签,标签类型匹配错误
  2. 页面加载需要时间,代码未等待元素加载完成就执行查找操作

更稳定的定位方式

优先使用data-testid属性定位,这个属性专为测试场景设计,比动态变化的class属性更可靠:

  • CSS选择器:a[data-testid="charts-login"]
  • XPath://a[@data-testid="charts-login"]

加上显式等待逻辑

通过WebDriverWait等待元素可点击,避免因页面未加载完成导致的报错。修改后的完整代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

website = 'https://charts.spotify.com/charts/view/citytoptrack-barcelona-weekly/2024-02-29'
path = '/home/isaac/chromedriver/chromedriver'
service = Service(executable_path=path)
driver = webdriver.Chrome(service=service)
driver.get(website)

# 等待登录按钮可点击,最长等待10秒
login_btn = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, 'a[data-testid="charts-login"]'))
)
login_btn.click()

二、无需登录直接爬取榜单数据的方法

Spotify图表页面的榜单数据是通过异步API请求加载的,你可以直接抓取后台接口,完全跳过登录流程:

  1. 打开目标页面,按F12打开开发者工具,切换到「Network」标签
  2. 筛选「XHR」类型请求,找到类似https://charts.spotify.com/api/charts/view/citytoptrack-barcelona-weekly/2024-02-29的接口
  3. 用requests库直接请求该接口,即可获取JSON格式的原始榜单数据

示例代码:

import requests

url = 'https://charts.spotify.com/api/charts/view/citytoptrack-barcelona-weekly/2024-02-29'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}

response = requests.get(url, headers=headers)
data = response.json()

# 提取并打印榜单信息
for track in data['tracks']:
    print(f"排名: {track['chartEntry']['position']}")
    print(f"歌曲名: {track['trackName']}")
    print(f"歌手: {track['artists'][0]['name']}")
    print(f"播放量: {track['chartEntry']['streams']}")
    print("---")

这种方法比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 09:13:20