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 = "<": "<", ">": ">", "\"": """, "&": "&" #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转义[重复]的主要内容,如果未能解决你的问题,请参考以下文章