Python爬虫汉字乱码问题

最简单的爬虫,使用requests库进行爬取百度网页,会发现汉字打印结果可能出现乱码问题,代码如下:

import requests
a=requests.get('http://www.baidu.com')
print(a.text)

打印结果:

<title>ç¾åº¦ä¸ä¸ï¼ä½ å°±ç¥é</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> 

对于打印结果做如下处理可以解决乱码问题,代码如下:

import requests
a=requests.get('http://www.baidu.com')
print(a.text.encode(a.encoding).decode('utf-8'))

打印结果:

<title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> 

 

其原理如下:

 

import requests
a=requests.get('http://www.baidu.com')
print(a.encoding)
print(type(a.text.encode(a.encoding)))
print(a.text.encode(a.encoding).decode('utf-8'))
print(type(a.text.encode(a.encoding).decode('utf-8')))

输出:ISO-8859-1

发现a的编码是ISO-8859-1,使用print(type(a.text.encode(a.encoding)))输出<class 'bytes'>发现已转化为byte,在试着打印print(type(a.text.encode(a.encoding).decode('utf-8')))输出<class 'str'>发现已转化为str,而且正常打印中文。

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页