如何设置find_all参数抓取Billboard Hot 100歌曲标题?技术求助
解决Billboard Hot 100歌曲标题抓取问题
要获取歌曲标题'About Damn Time',你需要定位页面中对应标题的HTML元素。查看网页结构后,歌曲标题都在h3标签内,且带有特定的class属性,你可以用以下两种方式修改代码中的find_all部分:
方法1:使用标签+Class定位
import requests import bs4 url = 'https://www.billboard.com/charts/hot-100/' song_title = [] res = requests.get(url) soup = bs4.BeautifulSoup(res.text, 'lxml') # 定位所有歌曲标题标签 tags = soup.find_all('h3', class_='c-title a-no-trucate') # 提取并整理标题文本 for tag in tags: clean_title = tag.get_text(strip=True) song_title.append(clean_title) # 打印目标标题(列表第一个元素就是'About Damn Time') print(song_title[0])
方法2:使用CSS选择器(更简洁)
如果你习惯用CSS选择器,也可以替换成:
tags = soup.select('h3.c-title.a-no-trucate')
说明
页面中每首歌的标题都被包裹在h3标签中,c-title a-no-trucate是识别标题的核心class组合,用这个定位能精准获取所有Hot 100歌曲标题。get_text(strip=True)用于去除文本前后的空白字符,得到整洁的标题内容。
内容的提问来源于stack exchange,提问作者Callane
相关产品推荐
相关产品推荐

