Python 3 BeautifulSoup4在源页面中搜索文本

时间:2015-05-09 03:49:43

标签: python-3.x beautifulsoup

我想在源代码中搜索所有'1'并打印'1'前的位置:<div id="yeahboy">1</div>'1'可以被任何其他字符串替换。我想看看那个字符串周围的标签。

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:对于将来的问题,尝试给出一个上下文,就像上面的上下文示例一样。这将使您的问题更加具体并且更容易回答 - 人们不必自己创建上下文,这可能与您实际拥有的情况无关< /子>