request.get中文乱码解决
问题描述
在爬取网站新闻时发现,返回的html代码中中文是乱码
1 |
|
对页面代码进行分析,发现页面是以utf-8
格式编码的
解决思路
将get到的结果先转换为utf-8格式编码,之后再获取text属性
1
2
3a = requests.get(url=url,headers=headers)
a.encoding='utf-8'
a=a.text将get到的text结果先编码,后解码
1
a = requests.get(url=url,headers=headers).text.encode('latin-1').decode('utf-8')
为什么要先编码后解码,直接utf-8解码不行吗?
答案是否定的
1
2
3
4
5
6
7
8
9print(type(requests.get(url=url,headers=headers)))
print(type(requests.get(url=url,headers=headers).text))
print(type(requests.get(url=url,headers=headers).text.encode('latin-1')))
print(type(requests.get(url=url,headers=headers).text.encode('latin-1').decode('utf-8')))
---------------------------------
<class 'requests.models.Response'>
<class 'str'>
<class 'bytes'>
<class 'str'>decode不能直接对字符串进行解码,所以要先将获取到的text字符串转码。
问题解决
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!