find_previous
会在特定代码前面添加代码,但我想在<b>
代码上方的<table>
代码中找到文字。
"
<h2>Hi</h2>
<b>I am here</b>
<b>Output</b>
<h2>Hi</h2>
<table>
.....
</table>
"
预期输出应为Output
。
我怎么能这样做?
答案 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)