python beautifulsoup,只找到完全匹配的 class

python beatifull soup, find only exact class matches

你好,我有这个小脚本

html = driver.execute_script("return document.getElementsByTagName('html')[0].innerHTML")
parse = BeautifulSoup(html, 'html.parser')
selector = Selector(text=html)
divs = selector.css('.panel .panel-heading a::attr(href)').getall()

它工作正常但我如果div有

<div class="panel grey">

我不希望这个匹配,只有当 div 有一个 div 时才完全匹配 只匹配这个

<div class="panel">

我尝试使用 decompsoe() 函数,但在我的情况下没有用,我完成脚本的最佳解决方案是什么这是唯一的问题

所以简而言之,只有当 div 有一个 class

时,才能找到 div 中的 children

严格匹配 divclass 等于 panel 值,而不仅仅是 包含的某些元素 panel class 属性你可以明确地写出来。
而不是

divs = selector.css('.panel .panel-heading a::attr(href)').getall()

尝试使用

divs = selector.css('div[class="panel"] .panel-heading a::attr(href)').getall()