Python 去除 HTML 标签获取纯文本

方法1:使用 BeautifulSoup(推荐)

python 复制代码
from bs4 import BeautifulSoup

html = "<p>Hello <b>World</b>! <a href='#'>Click</a></p>"
soup = BeautifulSoup(html, 'html.parser')
text = soup.get_text()
print(text)  # Hello World! Click

方法2:使用正则表达式(简单场景)

python 复制代码
import re

html = "<p>Hello <b>World</b>! <a href='#'>Click</a></p>"
text = re.sub(r'<[^>]+>', '', html)
print(text)  # Hello World! Click

方法3:使用 html.parser(标准库)

python 复制代码
from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):
    def __init__(self):
        super().__init__()
        self.text = []
    
    def handle_data(self, data):
        self.text.append(data)
    
    def get_text(self):
        return ''.join(self.text)

html = "<p>Hello <b>World</b>!</p>"
parser = MyHTMLParser()
parser.feed(html)
print(parser.get_text())  # Hello World!

方法4:使用 lxml(性能最好)

python 复制代码
from lxml import html

html_str = "<p>Hello <b>World</b>!</p>"
tree = html.fromstring(html_str)
text = tree.text_content()
print(text)  # Hello World!

📊 对比

方法 优点 缺点
BeautifulSoup 简单易用,容错强 需要安装第三方库
正则 无需安装,速度快 复杂HTML可能出错
html.parser 标准库,无需安装 代码稍多
lxml 速度最快,功能强大 需要安装C库

推荐 :一般用 BeautifulSoup ,简单场景用正则

bash 复制代码
pip install beautifulsoup4 lxml
相关推荐
2401_824697661 小时前
CSS如何实现元素反转特效_使用transform-scaleX(-1)操作
jvm·数据库·python
CLX05051 小时前
如何在 WordPress AMP 网站中为特定模板禁用 AMP 渲染
jvm·数据库·python
砚底藏山河1 小时前
python、JavaScript 、JAVA,定制化数据服务,助力业务高效落地
java·javascript·python
神明9311 小时前
如何实现SQL动态字段选择查询_利用反射或动态拼接字符串
jvm·数据库·python
洛的地理研学2 小时前
Python下载并处理MOD13A3植被指数数据
开发语言·python
humcomm2 小时前
Java 新特性2026年5月速览
java·开发语言
m0_733565462 小时前
golang如何实现RabbitMQ死信队列_golang RabbitMQ死信队列实现教程
jvm·数据库·python
xiao_li_ya2 小时前
C++学习日记1(`*`的理解、const关键词)
开发语言·c++
weixin_444012932 小时前
CSS定位如何实现模态框垂直居中_使用负边距或transform
jvm·数据库·python