Python 为什么靓汤按班选还空名单按查找所有作品?
我正试图从有靓汤的广告牌上解析出某一天最热门的100首歌曲。我试图按类名选择节,但它不起作用。我试着在课堂上使用find_all,效果很好。 为什么find_都只在这种情况下起作用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
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类选择器中的
连接单独的类。或者,如果合适,只需选择其中一个类。在这种情况下,您可以只使用第一个类。