无法从某个 dt 标签之后开始的几个 dd 标签中获取文本



我试图从位于两个dt标签之间的dd标签中获取文本。我对dd标签中的文本感兴趣,这些标签从dt标签开始,其中包含Bransje,直到下一个dt标签。

下一个dt标签包含Stillingsfunksjon,这可能并不总是如此。假设下一个dt标签可以包含任何内容

from bs4 import BeautifulSoup
html = """
<section class="panel">
<dl class="definition-list definition-list--inline">
<dt>Sektor</dt>
<dd>Privat</dd>
<dt>Sted</dt>
<dd>Bratsbergveien 5, 7037 Trondheim</dd>
<dt>Bransje</dt>
<dd>Industri og produksjon,</dd>
<dd>Maritim og offshore,</dd>
<dd>Olje og gass</dd>
<dt>Stillingsfunksjon</dt>
<dd>Ingeniør</dd>
</dl>
</section>
"""
soup = BeautifulSoup(html,"lxml")
for i in soup.select("dt:-soup-contains('Bransje') ~ dd"):
print(i.text)

当前输出:

Industri og produksjon,
Maritim og offshore,
Olje og gass
Ingeniør

预期输出:

Industri og produksjon,
Maritim og offshore,
Olje og gass

到达那里的一种方法:

for i in soup.select("dt:-soup-contains('Bransje') ~ *"):
if i.name=="dt":
break
else:
print(i.text)

输出应该是你期望的输出。

相关内容

  • 没有找到相关文章

最新更新