浅析requests库响应对象的text和content属性

 在做爬虫时请求网页的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显示的内容完全一样

 

因此我们可以得出结论:

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信