当前位置: 首页 > news >正文

python requests的content和text方法的区别

转自“https://blog.csdn.net/xie_0723/article/details/51361006

 

一直在想requests的content和text属性的区别,从print 结果来看是没有任何区别的

看下源码:

    @property
    def text(self): """Content of the response, in unicode. If Response.encoding is None, encoding will be guessed using ``chardet``. The encoding of the response content is determined based solely on HTTP headers, following RFC 2616 to the letter. If you can take advantage of non-HTTP knowledge to make a better guess at the encoding, you should set ``r.encoding`` appropriately before accessing this property. """ #content的完整代码就不贴了。 @property def content(self): """Content of the response, in bytes.""" 

 

  • 结论是:

resp.text返回的是Unicode型的数据。

resp.content返回的是bytes型也就是二进制的数据。


也就是说,如果你想取文本,可以通过r.text。

如果想取图片,文件,则可以通过r.content。

(resp.json()返回的是json格式数据)

  • 举个栗子
# 例如下载并保存一张图片

import requests

jpg_url = 'http://img2.niutuku.com/1312/0804/0804-niutuku.com-27840.jpg'

content = requests.get(jpg_url).content

with open('demo.jpg', 'wb') as fp: fp.write(content)
---------------------------------------------------------------------------------------以下是正确的

1、重点理解

response.text返回的类型是str

response.content返回的类型是bytes,可以通过decode()方法将bytes类型转为str类型

推荐使用:response.content.decode()的方式获取相应的html页面

2、扩展理解

  • response.text
    解码类型:根据HTTP头部对响应的编码做出有根据的推测,推测的文本编码
    如何修改编码方式:response.encoding = 'gbk'
  • response.content
    解码类型:没有指定
    如何修改编码方式:response.content.decode('utf8')
 

转载于:https://www.cnblogs.com/fengff/p/9007586.html

相关文章:

  • JS - 把类似document.querySelectorAll(.xxx)、document.getElementsByName(xxx)这种方法的返回结果转换成数组对象...
  • iOS App上架流程(2016详细版)来源DeveloperLY
  • mysql front查看所有数据库
  • 《编写高质量iOS与OS X代码的52个有效方法》书籍目录
  • HDU4522 湫湫系列故事——过年回家
  • redis视频地址
  • c#中使程序跳到指定行中
  • 奶牛问题
  • 理解MapReduce计算构架
  • 腾讯云SSL证书管理
  • 清除浮动最有效的css写法
  • 基于Docker搭建MySQL主从复制
  • 脑洞篇之我们生活在9维世界
  • Python time 的应用
  • 【剑指offer】面试题 2. 实现 Singleton 模式
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Angular 响应式表单之下拉框
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • leetcode386. Lexicographical Numbers
  • React的组件模式
  • SQLServer之创建数据库快照
  • unity如何实现一个固定宽度的orthagraphic相机
  • Web设计流程优化:网页效果图设计新思路
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于HAProxy的高性能缓存服务器nuster
  • 简单数学运算程序(不定期更新)
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 学习Vue.js的五个小例子
  • hi-nginx-1.3.4编译安装
  • Java数据解析之JSON
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #HarmonyOS:基础语法
  • #if 1...#endif
  • $.ajax中的eval及dataType
  • $.each()与$(selector).each()
  • (26)4.7 字符函数和字符串函数
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (论文阅读11/100)Fast R-CNN
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .bat批处理出现中文乱码的情况
  • .NET 8.0 发布到 IIS
  • .net知识和学习方法系列(二十一)CLR-枚举
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @RestControllerAdvice异常统一处理类失效原因
  • [Codeforces] probabilities (R1600) Part.1
  • [hdu2196]Computer树的直径
  • [JavaWeb]—前端篇
  • [LeetCode]—Permutations II 求全排列(有重复值)
  • [Linux]进程信号(信号入门 | 信号产生的方式 | 信号捕捉初识)