如何用Python移除HTML标签?需过滤<a>、<img>标签内容
移除HTML标签内和
后提取纯文本的解决方案
你可以通过先移除目标div内的和标签,再提取剩余文本的方式实现需求,具体步骤和代码如下:
实现步骤
- 解析HTML结构,定位到目标
<div>元素 - 移除该
<div>内所有的<a>和<img>标签(包括它们的内容) - 提取清理后的纯文本
示例代码
from bs4 import BeautifulSoup # 目标HTML内容 html_content = '''<div class="xxx" data-handler="xxx">its a good day <a class="link" href="https://" title="text">https:// link</a></div>''' # 初始化解析器并定位目标div soup = BeautifulSoup(html_content, 'lxml') target_div = soup.find('div', class_='xxx') # 批量移除<a>和<img>标签 for tag in target_div.find_all(['a', 'img']): tag.decompose() # 彻底删除标签及内部所有内容 # 提取并清理文本(去除首尾空白和换行) clean_text = target_div.get_text(strip=True) print(clean_text) # 输出结果:its a good day
关键说明
decompose()方法会完全删除标签及其包含的内容,确保不会残留链接或图片相关文本find_all(['a', 'img'])可一次性匹配多种标签,简化代码逻辑get_text(strip=True)自动处理文本中的换行、空格等冗余格式,输出整洁结果
内容的提问来源于stack exchange,提问作者Rom Rim
相关产品推荐
相关产品推荐

