Python中的HTML转义[重复]

Posted

技术标签:

【中文标题】Python中的HTML转义[重复]【英文标题】:HTML Escaping in Python [duplicate] 【发布时间】:2012-07-05 09:19:26 【问题描述】:

可能重复:What's the easiest way to escape html in Python?

在 Python 中 HTML 转义字符最简单的方法是什么?我想获取一个项目列表并对其进行迭代,将它们更改为 HTML 转义字符。

【问题讨论】:

我考虑过字符串替换,我也看过这个解决方案:wiki.python.org/moin/EscapingHtml,但这些方法似乎都不是更好的。 【参考方案1】:

Python标准库有cgi模块,提供escape功能。

见:http://docs.python.org/library/cgi.html#functions

【讨论】:

【参考方案2】:

模板引擎倾向于使您的代码更简洁且更易于维护。例如,您可以将列表传递给模板引擎并在模板内部进行迭代:

t = Template('% for item in items % item \n% endfor %')
result = t.render(dict(items=some_list))

默认情况下,大多数模板引擎都会转义 html。有很多可供选择,当我不使用 Django 时,可能最喜欢的是 jinja2。

请参阅http://wiki.python.org/moin/Templating 了解其他替代方案。

【讨论】:

我不想要模板。我将手动进行 HTML 转义,但我希望有一个可以轻松完成的模块。我不想重新发明***。 @AndrewAlexander:我的建议是避免在演示时间之前处理 html 转义。 这是在展示给 Twitter 搜索 API 之前 @AndrewAlexander:你想去掉 html 标签还是转义它们(例如,将 > 转换为 >)?顺便说一句,你想聊天吗?【参考方案3】:

尝试这样的事情(未经测试,只是一个示例):

html_convert = "<": "&lt;", ">": "&gt;", "\"": "&quot;", "&": "&amp;" #Etc.
html_text = "<div id=\"idk\">Something truly interesting & fun...</div>"
html_list = [char for char in html_text]

for char in html_list:
    if char in html_convert:
        char = html_convert[char]

html_escaped_text = "".join(html_list)

【讨论】:

以上是关于Python中的HTML转义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python中的各种转义符

Python中的转义

Python Pandas to_csv,您可以使用.replace()抢先处理双引号转义问题[重复]

json_encode() 转义 / 带有 \ [重复]

python正则表达式中的转义问题

python 中的反斜杠匹配的问题