从Python中的大字符串中删除编码的HTML标记

2024-04-25 04:38:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON文件,里面有一个“description”键,里面有很多HTML标记。我想把它们擦掉。它们被编码了,比如: &lt;ul&gt;而不是<ul>

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

text = soup.get_text()

但它也不起作用(它只解码html标记) 最后,我试着做:

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

把这两个代码结合起来,但是标签不会被删除

我现在在“text”变量中得到了什么(在使用漂亮的soup解码html标记之后):
"description":"</li></ul><p> </p><p><strong>TESTING AND QUALITY</strong></p><ul><li>....."

文本变量中的内容:
"description":"TESTING AND QUALITY"


Tags: andtext标记gethtmllidescription解码
2条回答

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

import re

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

尝试改用decode_contents()

相关问题 更多 >