python中,把‘&#’ ‘&#x开头的字符串转换成中文

如题所述

第1个回答  2022-07-01
(一)

爬虫时经常遇到'/u'开头的unicode编码的字符串,这时通过decode()来解决.

但偶尔也会遇到以‘&#’ 或者‘&#x’开头的字符串, 这是HTML、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。

如果以‘&#‘ 开头,后接十进制数字,

如果以‘&#x’开头,后接十六进制数字。

在python中的解决方法是:

importhtml

a ='外观'

print(html.unescape(a))

# 输出:外观

希望对你有用

(二)

Python中escape和unescape

Python处理HTML转义字符

在抓网页数据经常遇到例如>或者 这种HTML转义符,抓到字符串里很是烦人。

比方说一个从网页中抓到的字符串

p ='<abc>'

用Python可以这样处理:

import html

p ='<abc>'txt= html.unescape(p)print(txt)

#这样就得到了txt= ''

如果还想转回去,可以这样:

import cgi

q = cgi.escape(html)print(q)

       #这样又回到了 html = '<abc>'