在做爬虫时请求网页的requests库是必不可少的,我们常常会用到 res = resquests.get(url) 方法,在获取网页的html代码时常常使用res的text属性: html = res.text,在下载图片或文件时常常使用res的content属性:
with open(filename, 'wb') as fp: fp.write(res.content)
下面我们来看看 'text' 和 'content' 的不同之处:
输出本博客的响应对象的 text
import requests url = 'https://www.cnblogs.com/huwt/' res = requests.get(url, timeout = 6) print(res.text)
(只截取到<title>标签)

输出本博客的响应对象的 content
import requests url = 'https://www.cnblogs.com/huwt/' res = requests.get(url, timeout = 6) print(res.content)
(只截取到<title>标签)

通过<title>标签我们可以看出 res.text 直接输出了汉字,而 res.content 好像是以十六进制的形式来表示汉字
为了让进一步了解text 和 content 我们来看看它们的类型:
import requests url = 'https://www.cnblogs.com/huwt/' res = requests.get(url, timeout = 6) print(type(res.text)) print(type(res.content))

我们可以看到res.text是字符串类型,而res.content是二进制类型
为了进一步验证我们使用bytes类型的decode()方法对content进行‘utf-8’编码再显示
import requests url = 'https://www.cnblogs.com/huwt/' res = requests.get(url, timeout = 6) print(res.content.decode('utf-8'))

发现和res.text显示的内容完全一样
因此我们可以得出结论:

