python获取编码方式_在Python中获取HTTP响应的字符集/编码的好方法
小編典典
_, params = cgi.parse_header('text/html; charset=utf-8')
print params['charset'] # -> utf-8
或使用響應(yīng)對象:
response = urllib2.urlopen('http://example.com')
response_encoding = response.headers.getparam('charset')
# or in Python 3: response.headers.get_content_charset(default)
通常,服務(wù)器可能會說謊或根本不報告編碼(默認取決于內(nèi)容類型),或者可能在響應(yīng)正文中指定編碼,例如html文檔中的元素或xml文檔的xml聲明中的元素。作為最后的選擇,可以從內(nèi)容本身猜測編碼。
您可以requests用來獲取Unicode文本:
import requests # pip install requests
r = requests.get(url)
unicode_str = r.text # may use `chardet` to auto-detect encoding
或BeautifulSoup解析html(并轉(zhuǎn)換為Unicode作為副作用):
from bs4 import BeautifulSoup # pip install beautifulsoup4
soup = BeautifulSoup(urllib2.urlopen(url)) # may use `cchardet` for speed
# ...
from bs4 import UnicodeDammit
dammit = UnicodeDammit(b"Sacr\xc3\xa9 bleu!")
print(dammit.unicode_markup)
# -> Sacré bleu!
print(dammit.original_encoding)
# -> utf-8
2021-01-20
總結(jié)
以上是生活随笔為你收集整理的python获取编码方式_在Python中获取HTTP响应的字符集/编码的好方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这一切,只因心中有梦
- 下一篇: 【JVM】jvm的双亲委派机制