2021-11-18 Python使用request包请求网页
https://jingyan.baidu.com/article/915fc4145b5f5d51394b20c8.html
-
先安装requests包,打开电脑运行输入‘cmd’,在命令行窗口输入
‘pip install requests’
Python使用request包请求网页乱码解决方法 -
打开Python开发工具IDLE,新建‘request.py’文件,并写代码如下:
import requests
r = requests.get('http://www.baidu.com')
print (type(r))
print (r.text)
Python使用request包请求网页乱码解决方法 -
F5运行程序,打印出信息如图。r = requests.get('http://www.baidu.com'),
r是requests.models.Response的对象。r.text是其网页内容。
Python使用request包请求网页乱码解决方法 -
这里有乱码,查看网页发现charset的编码是‘utf-8’,但是‘utf-8’不会乱码,我们打印Response r 的编码。代码如下:
import requests
r = requests.get('http://www.baidu.com/')
print (type(r))
print (r.encoding)
print (r.text)
Python使用request包请求网页乱码解决方法 -
F5运行程序,打印出:ISO-8859-1为其编码方式,这就是问题所在,继续改写代码如下:
import requests
r = requests.get('http://www.baidu.com/')
print (type(r))
print (r.encoding)
print (r.apparent_encoding)
print ((r.text.encode(r.encoding).decode(r.apparent_encoding)))
r.apparent_encoding是通过内容分析出的编码,这里是utf8编码
Python使用request包请求网页乱码解决方法 Python使用request包请求网页乱码解决方法 -
F5运行程序,网页内容没有乱码了,通过r.apparent_encoding即utf-8解码就行了。一般网页通过这种方式都能解码正常
Python使用request包请求网页乱码解决方法