在另一个标签BeautifulSoup之前找到标签

时间:2018-01-03 16:30:40

标签: python beautifulsoup

find_previous会在特定代码前面添加代码,但我想在<b>代码上方的<table>代码中找到文字。

"
<h2>Hi</h2>
<b>I am here</b>
<b>Output</b>
<h2>Hi</h2>
<table>
.....
</table>


"

预期输出应为Output。 我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

使用您拥有的HTML,以下内容可行:

from bs4 import BeautifulSoup

html = """<h2>Hi</h2>
<b>I am here</b>
<b>Output</b>
<h2>Hi</h2>
<table>
.....
</table>"""                

soup = BeautifulSoup(html, "html.parser")
print soup.table.find_previous('b').text

答案 1 :(得分:1)

另一种方式可能是:

from bs4 import BeautifulSoup

html ='''
<h2>Hi</h2>
<b>I am here</b>
<b>Output</b>
<h2>Hi</h2>
<table>
.....
</table>
'''               
soup = BeautifulSoup(html, "lxml")
item = soup.select_one("table").find_previous_sibling("b").text
print(item)