为什么靓汤按班选还空名单按查找所有作品?

2024-10-02 22:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从有靓汤的广告牌上解析出某一天最热门的100首歌曲。我试图按类名选择节,但它不起作用。我试着在课堂上使用find_all,效果很好。 为什么find_都只在这种情况下起作用

from bs4 import BeautifulSoup
import requests

billboard_website = "https://www.billboard.com/charts/hot-100/2019-05-09"
response = requests.get(f"{billboard_website}")
soup = BeautifulSoup(response.text, "html.parser")


print(soup.select(".chart-element__information__song text--truncate color--primary")) # returns an empty list

print(soup.find_all(class_="chart-element__information__song text--truncate color--primary")) # returns the full list

Tags: textimportinformationsongresponsechartwebsiteelement
1条回答
网友
1楼 · 发布于 2024-10-02 22:33:35

正如docs中所解释的,这两种方法都取决于您试图实现的目标

本质上find_all(class_="Class1 Class2")几乎等同于select(.Class1.Class2)。唯一的区别是前者需要精确的字符串,而后者需要CSS选择器,但不关心顺序[1],例如

假设您有以下元素<p class="A B">

find_all(class=“B A”)将不匹配,但select(.B.A)将匹配

如果将语法修改为soup.select(".chart-element__information__song.text truncate.color primary"),它应该返回相同的值

[1]-还有其他不同之处,例如对regex的支持,这些在文档中进行了解释

相关问题 更多 >