【问题标题】:BeautifulSoup find specific stringBeautifulSoup 查找特定字符串
【发布时间】:2026-01-25 02:05:01
【问题描述】:

我刚刚开始了一个小“项目”来学习美味的汤,尽管 BS 网站很大,但我找不到我的问题的答案。 我正在分析 Billboard100 并设法按其 div 作为数组获取所有歌曲的列表 - 很好,我可以为不同的歌曲调用单独的列表。当我需要从该列表中获取一些细节 - 歌曲名称,艺术家姓名等时,问题就开始了。我尝试了 text.strip() 然后 split() 和索引,但不同的歌曲在不同的位置有不同的细节,这意味着我可能应该通过 div 类找到它们,因为它们对所有歌曲使用相同的类,这就是我卡住的地方。

<div class="chart-list-item__title">
<span class="chart-list-item__title-text">
Mona Lisa
</span>
</div>
<div class="chart-list-item__artist">
 Lil Wayne Featuring Kendrick Lamar
</div>

这只是代码的一部分 - 假设我正在尝试获取“蒙娜丽莎”和“Lil Wayne 以 Kendrick Lamar 为主角”。有没有办法在我已经从原始 HTML 中提取的 HTML 上使用 BeautifulSoup?

【问题讨论】:

    标签: web-scraping beautifulsoup


    【解决方案1】:

    您应该能够找到具有所需类名的 div:

    此代码假定您只有卡片(您想要的歌曲的列表项)作为汤,而不是整个页面:

    title = card.find("div", {"class": "chart-list-item__title"}).contents[0]
    artist = card.find("div", {"class": "chart-list-item__artist"}).contents[0]
    

    【讨论】: