最简单的爬虫,使用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,而且正常打印中文。