首页 > 解决方案 > 从 Python 中的大字符串中删除编码的 HTML 标记

问题描述

我有一个带有“描述”键的 JSON 文件,里面有很多 HTML 标签。我想抹去它们。它们被编码,例如: &lt;ul&gt;而不是<ul>

我试过做text.replace('<.*?>',''),但它不起作用。
我也试过用 BeautifulSoup 做:

text = soup.get_text()

但它也不起作用(它只是解码 html 标签)最后,我尝试过这样做:

soup = BeautifulSoup(text)
text = soup.get_text()
text = text.replace('<.*?>','')

结合这两个代码,但标签不会被删除......

我现在在“文本”变量中拥有的内容(在使用解码 html 标签的漂亮汤之后):
"description":"</li></ul><p> </p><p><strong>TESTING AND QUALITY</strong></p><ul><li>....."

我想在文本变量中拥有什么:
"description":"TESTING AND QUALITY"

标签: pythonhtmlstringparsingreplace

解决方案


您可以尝试使用正则表达式而不是replace丢弃 HTML 标签:

import re

soup = BeautifulSoup(text)
text = soup.get_text()
text = re.sub(r'<.*?>', '', text)

推荐阅读