我不明白为什么当我使用Requests library发出HTTP请求时,我要求显示命令.text
,特殊字符(例如重音符号)被编码(例如é
=é
)。
然而,当我尝试r.encoding
时,我得到utf-8
。
此外,这个问题只出现在一些网站上。有时我有正确的性格,但有时,一点也不。
尝试如下:
r = requests.get("https://gks.gs/login")
print r.text
显示的是编码字符,我们可以看到
Mot de passe oublié ?
。我不明白为什么。你认为这可能是因为https?请问怎么修?
最佳答案
这些是HTML character entity references,最简单的解码方法是:
在Python 2.x中:
>>> import HTMLParser
>>> HTMLParser.HTMLParser().unescape('oublié')
'oublié'
在Python 3.x中:
>>> import html.parser
>>> html.parser.HTMLParser().unescape('oublié')
'oublié'