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
相关推荐
学测绘的小杨6 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
越努力越幸运668 小时前
多模态代码调试实战:Gemini3.5 精准捕获 HTML 隐性语法
html
zzzzzz31013 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐13 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱1 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot1 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽2 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码2 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python