如何使用BeautifulSoup在相邻出现时提取特定字符串

2024-04-16 16:13:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解析来自BeautifulSoup的HTML页面结果,我感兴趣的部分如下所示:

<i class="fa fa-circle align-middle font-80" style="color: #45C414; margin-right: 15px"></i>Departure for <a href="/en/ais/details/ports/17787/port_name:TEKIRDAG/_:3525d580eade08cfdb72083b248185a9" title="View details for: TEKIRDAG">TEKIRDAG</a> </td>

我对提取port_nameTEKIRDAG感兴趣,但是有许多端口名的标签相同。我的问题是,如果port_name发生在字符串'Departure for'之后,是否有方法只提取port_name


Tags: namemiddleforporthtml页面details感兴趣
1条回答
网友
1楼 · 发布于 2024-04-16 16:13:40

您可以找到文本节点并获取next sibling

In [1]: from bs4 import BeautifulSoup

In [2]: data = """<i class="fa fa-circle align-middle font-80" style="color: #45C414; margin-right: 15px"></i>Departu
   ...: re for <a href="/en/ais/details/ports/17787/port_name:TEKIRDAG/_:3525d580eade08cfdb72083b248185a9" title="Vie
   ...: w details for: TEKIRDAG">TEKIRDAG</a> </td>"""
   ...:     

In [3]: soup = BeautifulSoup(data, "html.parser")

In [4]: soup.find(text="Departure for ").next_sibling.get_text()
Out[4]: u'TEKIRDAG'

相关问题 更多 >