有没有办法用 BeautifulSoup 在 siblings 子树中找到标签?这里的场景是我已经找到了一个我想要的标签,我需要获取另一个位于其兄弟子树中的标签。
等效的 xpath 是
#mytag ~ div span
#mytag ~ div span{
background: green;
color: white;
}
<div id="mytag"></div>
<span>nope</span>
<div>
<span>foo bar</span>
</div>
我可以使用 .find_next_siblings
找到所有 sibling ,但不会搜索子树。有什么方法可以轻松做到吗?
最佳答案
您可以使用 select()
接受 CSS selector轻松完成此操作的表达式:
mydiv.select("~ div span")
快速测试:
>>> from bs4 import BeautifulSoup
>>> raw = '''<div>
... <div id="mytag"></div>
... <span>nope</span>
... <div>
... <span>foo bar</span>
... </div>
... </div>'''
>>> soup = BeautifulSoup(raw, 'lxml')
>>> mydiv = soup.find("div", {"id": "mytag"})
>>> mydiv.select("~ div span")
[<span>foo bar</span>]
关于python - 使用 BeautifulSoup4 在 sibling 子树中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48820655/