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

Python 为什么靓汤按班选还空名单按查找所有作品?,python,html,beautifulsoup,Python,Html,Beautifulsoup,我正试图从有靓汤的广告牌上解析出某一天最热门的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&qu

我正试图从有靓汤的广告牌上解析出某一天最热门的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

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

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

假设您有以下元素

查找所有(class=“B A”)将不匹配,但
选择(.B.A)
将匹配

如果将语法修改为
soup.select(“.chart-element\u information\u song.text--truncate.color--primary”)
它应该返回相同的值


[1] -还有其他区别,例如对正则表达式的支持,这在文档中解释,在CSS选择器的上下文中,我相信空格表示嵌套元素,在
truncate
color
之间有一个空格。谢谢,但我尝试了另一个类,
print(soup.select('.chart-list\uu wrapper'))
仍然返回空列表。由
requests.get()
获取时,该页面不包含任何出现的
图表列表包装器
。(请求不执行javascript。)
[i.text代表汤中的i.select('.chart-element\uuuuuu information\uuuuu song')]
多值类您需要使用css类选择器中的
连接单独的类。或者,如果合适,只需选择其中一个类。在这种情况下,您可以只使用第一个类。