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

爬取Billboard Global 200榜单无法获取在榜周数求助

解决Billboard Global 200榜单在榜周数爬取问题

要获取歌曲的在榜周数,你可以通过元素的data-testid属性定位,这种方式比单纯依赖类名更稳定(页面样式类可能随网站更新变动)。当前Billboard Global 200页面中,在榜周数的数值对应data-testid="weeks-on-chart-value"的span标签。

修改后的完整代码如下:

import requests
from bs4 import BeautifulSoup

source = requests.get('https://www.billboard.com/charts/billboard-global-200/')
source.raise_for_status()

soup = BeautifulSoup(source.text, 'html.parser')
music = soup.find_all('div', class_='o-chart-results-list-row-container')

for songs in music:
    songTitle = songs.find('h3').text.strip()
    songArtist = songs.find('h3').find_next('span').text.strip()
    songRank = songs.find('span').text.strip()
    # 获取在榜周数,处理无数据的情况
    weeks_element = songs.find('span', {'data-testid': 'weeks-on-chart-value'})
    WeeksOnChart = weeks_element.text.strip() if weeks_element else '0'
    print(f"排名: {songRank}, 歌曲: {songTitle}, 歌手: {songArtist}, 在榜周数: {WeeksOnChart}")

说明:

  • 新增了weeks_element变量先判断元素是否存在,避免因新上榜歌曲无在榜周数导致的AttributeError
  • 如果找不到对应元素,默认返回'0',你可以根据需求改成空字符串或其他值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:40:53