尝试选择具有属性" data-server"的元素时它没有返回 这是代码
>>> psoup.select_one(".server > .serverslist")
<div class="serverslist " data-server="aHR0cDovL3d3dy5jbG91ZHkuZWMvZW1iZWQucGhwP2lkPWExYWU0NjkwZmZmYjQ=">cloudy</div>
>>> psoup.select_one(".server > .serverslist[data-server]")
>>>
答案 0 :(得分:1)
BeautifulSoup的CSS选择器相当有限。属性选择器([...]
)只能与标签选择器组合,而不能与其他选择器(如您使用的类选择器)组合使用:
>>> from bs4 import BeautifulSoup
>>> psoup = BeautifulSoup(
... '<div class="server"><div class="serverslist " data-server="aHR0cDovL3d3dy5jbG91ZHkuZWMvZW1iZWQucGhwP2lkPWExYWU0NjkwZmZmYjQ=">cloudy</div></div>',
... 'lxml')
>>> psoup.select_one("div[data-server]")
<div class="serverslist " data-server="aHR0cDovL3d3dy5jbG91ZHkuZWMvZW1iZWQucGhwP2lkPWExYWU0NjkwZmZmYjQ=">cloudy</div>
>>> psoup.select_one("[data-server]")
<div class="serverslist " data-server="aHR0cDovL3d3dy5jbG91ZHkuZWMvZW1iZWQucGhwP2lkPWExYWU0NjkwZmZmYjQ=">cloudy</div>
>>> psoup.select_one(".serverslist[data-server]") is None
True
您必须找到一种表达选择器的不同方式,一种不能同时查找属性和类的方法。