在requests获取html内容的时候,由于页面编码格式的问题,有时候会出出现乱码的问题,这里记录下统一的解决方法。
先写一段获取百度首页的代码
1 | import requests |
2 | req = requests.get('https://www.baidu.com').text() |
3 | print(req) |
这段代码执行后,后获取百度首页的html代码,但是有些网站获取html代码就可能不那么轻松了,可能就会出现编码问题,也不演示这么多,大多说html的编码是utf-8
,但是不排除其他编码方式的存在,为了解决这个问题,让指定正确的编码方式,requests
中封装了获取页面编码方式的方法。以后获取页面源码的时候可以这样写,增加代码的健壮性。
1 | import requests |
2 | req = requests.get('https://www.baidu.com') |
3 | if req.status_code == 200: |
4 | req.encoding = req.apparent_encoding |
5 | print(req.text()) |
通过添加设置apparent_encoding
,调用chardet.detect()来识别文本编码,可以实现自动编码。