因此,我一直在尝试使用bs4,发现了一个我无法解决的问题。我想做的是,如果一个类中有一个值,那么我们通过;如果一个类中没有任何值,那么我们继续。
情况一:
<option class="disabled RevealButton" value="1_120">
Overflow </option>
<option class="disabled RevealButton" value="1_121">
Stack </option>
<option class="disabled RevealButton" value="1_122">
!!! </option>
情况2
<option class="" value="1_120">
Overflow </option>
<option class="" value="1_121">
Stack </option>
<option class="" value="1_122">
!!! </option>
我现在所做的是:
try:
select_tags = bs4.find('select', {'autocomplete': 'off'})
except Exception:
select_tags = []
for select_tag select_tags:
print(select_tag)
现在它要做的是打印第一种情况或第二种情况。
我要输出的内容如下:
如果类包含禁用的RevealButton ,那么我们只需传递并继续循环。
如果类不包含'disabled RevealButton',则我们打印出 select_tag
我不知道该怎么办才能解决我的问题!
答案 0 :(得分:2)
要检查某个元素是否具有disabled
和RevealButton
类,可以使用dictionary-like interface的BeautifulSoup元素(Tag
实例):
"disabled" in element["class"] and "RevealButton" in element["class"]
注意:您需要在option元素上应用它。
请注意,class
是一个特殊的multi-valued attribute,其值是一个列表。
另一个选择(没有双关语)将查找两个类的option元素:
for select_tag in select_tags:
if select_tag.select("option.disabled.RevealButton"):
continue
print(select_tag)
在这里,option.disabled.RevealButton
是一个CSS selector,它将与同时具有option
和disabled
类的RevealButton
元素相匹配。