如何获取除<b>节点文本之外的文本
<b>
如果您有一个包含 HTML 的字符串,并希望提取除了 <b> 标签中的文本之外的所有文本,可以使用 Python 的 BeautifulSoup 库。以下是实现这一功能的示例代码:
BeautifulSoup
from bs4 import BeautifulSoup # 假设有如下 HTML 文本 html_content = """ <div> This is some <b>bold text</b> and this is <b>another bold text</b>. Here is some normal text. </div> """ # 解析 HTML soup = BeautifulSoup(html_content, 'html.parser') # 移除所有 <b> 标签 for bold in soup.find_all('b'): bold.extract() # 获取剩余的文本 remaining_text = soup.get_text(strip=True) print(remaining_text)
This is some and this is . Here is some normal text.
解析 HTML: 使用 BeautifulSoup(html_content, 'html.parser') 解析 HTML。
BeautifulSoup(html_content, 'html.parser')
移除 <b> 节点: 使用 find_all('b') 找到所有 <b> 节点,并通过 .extract() 将其从 DOM 中移除。
find_all('b')
.extract()
获取剩余的文本: 使用 .get_text(strip=True) 提取移除 <b> 标签后的纯文本。
.get_text(strip=True)
decompose()
如果您希望保留 <b> 标签但删除其内容,可以尝试:
for bold in soup.find_all('b'): bold.string = '' # 清空内容 result = soup.get_text(strip=True) print(result)