我想在源代码中搜索所有'1'并打印'1'前的位置:<div id="yeahboy">1</div>
'1'可以被任何其他字符串替换。我想看看那个字符串周围的标签。
答案 0 :(得分:1)
考虑这个上下文,例如*:
from bs4 import BeautifulSoup
html = """<root>
<div id="yeahboy">1</div>
<div id="yeahboy">2</div>
<div id="yeahboy">3</div>
<div>
<span class="nested">1</span>
</div>
</root>"""
soup = BeautifulSoup(html)
您可以使用find_all()
传递parameter True
来表示您只需要元素节点(而不是子文本节点),并parameter text="1"
表示您想要的元素必须包含文本内容等于&#34; 1&#34; - 或者您要搜索的任何其他文本:
for element1 in soup.find_all(True, text="1"):
print(element1)
输出:
<div id="yeahboy">1</div>
<span class="nested">1</span>
*)对于OP:对于将来的问题,尝试给出一个上下文,就像上面的上下文示例一样。这将使您的问题更加具体并且更容易回答 - 人们不必自己创建上下文,这可能与您实际拥有的情况无关< /子>