hSection 是<class 'bs4.element.ResultSet'>
在使用 find 时:
hSection.find_all('div',attrs={'class':'bts'))
但结果还是很多不要的,实际上条件还要多一些,
如:
在以上条件前提下,还要属性'style'不能是'display:none;'
虽然紧接着多写几句 if ,for .children ,也能最终找到目标节点,
但想问,能否在 find() & find_all()方法里,一句就写完“是和非”的多条件完全匹配呢?
1
deplivesb 2023-06-06 18:43:26 +08:00 1
results = soup.findAll(lambda tag: tag.attrs.get("class") == ["bts"] and tag.attrs.get("style") == "display:none")
|
2
deplivesb 2023-06-06 18:46:32 +08:00 1
|
3
deplivesb 2023-06-06 18:50:56 +08:00 1
|
4
pppguest3962 OP @deplivesb
谢谢,有个情况是否能兼顾到而且避免?, 如: tag.attrs.get("style", []) 或者 tag.attrs.get("class") 有些标签是没有 clss 或者 style 属性的,get 会有 None ,None 不能 iterable ,就异常了。。。 TypeError: argument of type 'NoneType' is not iterable |
5
deplivesb 2023-06-07 09:41:55 +08:00
@pppguest3962 get 的第二个参数不是默认值?
|