脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python处理html转义字符的方法详解

python处理html转义字符的方法详解

2020-08-31 11:10holybin Python

这篇文章主要介绍了python处理html转义字符的方法,结合实例形式较为详细的分析了Python针对常见HTML转义字符处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了html">python处理html转义字符的方法。分享给大家供大家参考,具体如下:

最近在用Python处理网页数据时,经常遇到一些html转义字符(也叫html字符实体),例如<> 等。字符实体一般是为了表示网页中的预留字符,比如>用>表示,防止被浏览器认为是标签,具体参考w3school的HTML 字符实体。虽然很有用,但是它们会极度影响对于网页数据的解析。为了处理这些转义字符,有如下解决方案:

1、使用HTMLParser处理

?
1
2
3
4
5
import HTMLParser
html_cont = " asdfg>123<"
html_parser = HTMLParser.HTMLParser()
new_cont = html_parser.unescape(html_cont)
print new_cont #new_cont = " asdfg>123<"

转换回去(只是空格转不回去了):

?
1
2
3
import cgi
new_cont = cgi.escape(new_cont)
print new_cont #new_cont = " asdfg&gt;123&lt;"

2、直接挨个替换

?
1
2
3
4
5
6
7
html_cont = "&nbsp;asdfg&gt;123&lt;"
new_cont = new_cont.replace('&nbsp;', ' ')
print new_cont #new_cont = " asdfg&gt;123&lt;"
new_cont = new_cont.replace('&gt;', '>')
print new_cont #new_cont = " asdfg>123&lt;"
new_cont = new_cont.replace('&lt;', '<')
print new_cont #new_cont = " asdfg>123<"

不知道还有没有更好的办法。

另外stackoverflow上给出了在xml中处理转义字符的解答:python - What's the best way to handle &nbsp;-like entities in XML documents with lxml? - Stack Overflow

希望本文所述对大家Python程序设计有所帮助。

延伸 · 阅读

精彩推荐