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

如何修改Python爬虫实现仅提取打印英国单曲排行榜歌曲标题

代码修改方案

原有代码存在几处逻辑和写法错误,直接修改即可实现需求:

  • 循环逻辑错误:while循环条件page >= max_pages写反,且page +=1放在了while循环外部,会触发死循环
  • 元素定位错误:定位歌曲标题的DOM选择器不正确,且获取文本的写法完全错误
  • 存在冗余代码:前半部分输出所有页面链接的代码和需求无关,可以直接删除

修改后可直接运行的完整代码如下:

import requests
from bs4 import BeautifulSoup

def chart_spider(max_pages):
    page = 1
    while page <= max_pages:
        # 单页已经包含完整TOP100榜单数据,不需要翻页可以固定url
        url = "https://www.officialcharts.com/charts/singles-chart"
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, 'html.parser')
        # 用正确的class属性定位所有歌曲标题标签
        for title_tag in soup.find_all('a', {"class": "chart-name"}):
            # 提取标题文本并去除前后空白字符
            song_title = title_tag.get_text(strip=True)
            print(song_title)
        page += 1

# 传入参数1代表只爬取1页的TOP100数据
chart_spider(1)

代码运行后会直接按排名顺序输出当期TOP100的所有歌曲标题,不需要额外配置。如果需要爬取多期历史榜单,调整传入chart_spider的参数以及url的拼接规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:36:03