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
严格匹配 div
与 class
等于 到 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()
你好,我有这个小脚本
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严格匹配 div
与 class
等于 到 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()