在使用requests库通过get方法请求网页时,得到的response结果需要手动调整encoding属性,不然会出现乱码。
但是使用异步aiohttp的get方法时,得到的response不需要手动调整encoding,因为response.text()
得到的内容是默认会按照网页的charset去编码,请看代码:
-
下图是调用aiohttp中的
get()
方法的代码:
-
我们来看一下
response.text()
的源码:
-
继续看
self.get_encoding()
的源码:
可以看到,如果没有指定encoding,会默认获取网页的charset属性,获取不到,会设置默认值UTF-8,所以并不需要手动指定,当然你想指定也无可厚非,做法是:response.text(encoding=response.charset)
。