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
相关推荐
troy12810 小时前
Python 基础语法(六):函数与模块、文件操作、异常处理
开发语言·python
小叶肥辉10 小时前
LangChain链和LangGraph图的学习笔记【四】——(1)调用方法:invoke(2)提示语模板:PromptTemplate
python·langchain·prompt
lv__pf10 小时前
09-深入理解AQS之独占锁ReentrantLock源码分析【TL 并发 09】
java·开发语言
小兔崽子去哪了10 小时前
深度学习 2 / CNN 神经网络
后端·python
weixin_4407305010 小时前
队列QUEUE介绍+类型示例(先进先出、后进先出、优先级高先出、双端进入、生产者+消费者线程)
python·线程·queue
这是程序猿10 小时前
Java线程池深度剖析:源码原理、核心参数、任务调度与生产调优实战
java·开发语言·python
Web3&Basketball10 小时前
ChatGPT 路由自证:跨客户端实测对照
python·大模型·agent·推理·推理优化
Patrick在香港10 小时前
Claude 工作提醒自动化:香港天文台四个接口三个「更新时间」,警告到期了却还在生效
python·api·claude·数据抓取·香港
用户83562907805110 小时前
Python 实现 Word 文档域的插入与管理
后端·python