Python学习笔记:爬虫.content和.text区别_爬虫中r.content的作用-程序员宅基地

技术标签: Python  

requests对象的get和post方法都会返回一个Response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。其中返回的网页部分会存在.content和.text两个对象中。

.content中间存的是字节码 .text存的是.content编码后的字符串

一般来说 .text直接用比较方便 返回的是字符串 但是有时候会解析不正常导致

返回的是一堆乱码这时用.content.decode('utf-8')就可以使其显示正常。

总的来说.text是现成的字符串,.content还要编码,但是.text不是所有时候显示都正常,这是就需要用.content进行手动编码。

 

对requests获取的原始数据,有两种获取形式,一个是r.content一个是r.text。

二者的区别在于content返回的是byte型数据,而text返回的是Unicode数据,也就是说text对原始数据进行的特殊的编码,而这个编码方式是基于对原始数据的猜测(响应头),

text一般用于返回的文本
content的一般用于对返回的其他数据类型

但是对于某些网站的中文用text可能会导致返回乱码,所以最好是使用content然后自己进行重新编码。

 

最终结论是:text 返回的是unicode 型的数据,一般是在网页的header中定义的编码形式。

content返回的是bytes,二级制型的数据。

也就是说你如果想要提取文本就用text

但是如果你想要提取图片、文件,就要用到content

实例:

'''爬取图片并存储'''
import requests

url = 'http://msn-img-nos.yiyouliao.com/inforec-20200420-1f6f8c4e4eba52d13b92e219ee192327.jpg?time=1587491277&signature=79C0C217738938CE7AE4455B1AA83687'

filename = 'pic1.jpg'
with open(filename, 'wb') as f:
    img = requests.get(url)
    contt = img.content  # 图片存储用二进制--content;text存储文本
    f.write(contt)

wb:    以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

with open() 用法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37209590/article/details/105672571

智能推荐

java毕业设计——基于JSP+sqlserver的教师档案管理系统设计与实现(毕业论文+程序源码)——教师档案管理系统_教师档案管理系统一般对谁开放,谁可以修改里边的数据-程序员宅基地

文章浏览阅读577次。教师档案管理系统是一个典型的高校档案管理系统,其开发过程主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求其应用程序具有功能完备,易使用等特点。经过分析,我们以B/S为开发模式,运用JSP(JAVA SERVER PAGES)和JAVA编程语言,以SQL Server 、 DREAMWEAVER、TOMCAT和EDITPLUS为开发平台,开发出了一个教师档案管理系统。_教师档案管理系统一般对谁开放,谁可以修改里边的数据

QTreeWidget与QStackedWidget的关联操作_通过qtreeviewt切换stackedwidget的页面-程序员宅基地

文章浏览阅读1.4k次,点赞8次,收藏23次。QTreeWidget与QStackedWidget的关联通过点击QTreeWidget来控制QStackedWidget中的page页面切换QTreeWidget有一点击的槽函数void MainWindow::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column){ //QTreeWidgetItem *item=item; if(item->text(column)=="学生管理") { _通过qtreeviewt切换stackedwidget的页面

【踩坑记录】Sharding-JDBC(4.0.0)之单库分表_org.springframework.transaction.transactionsysteme-程序员宅基地

文章浏览阅读4.3k次,点赞2次,收藏3次。背景之前由于有分表的需求,使用了sharding-jdbc,版本是3.0.0。前几天有一波高并发的调用,发现sharding-jdbc内部有报错(具体信息如下),也没有查出来具体的原因,盲猜使用升级大法,升到了4.0.0-RC1。变化还是有一些的,来记录一下4.0.0版本的配置。org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested except_org.springframework.transaction.transactionsystemexception: could not roll b

soap toolkit 3.0_soaptoolkit30-程序员宅基地

文章浏览阅读2.1k次。1、下载SoapToolkit3.0: win2000server 打上sp4补丁http://download.microsoft.com/download/2/e/0/2e068a11-9ef7-45f5-820f-89573d7c4939/soapsdk.exe 2、SoapToolkit3.0的使用例子: http://download.micro_soaptoolkit30

Android 适配横屏_android 横屏适配-程序员宅基地

文章浏览阅读3.5k次。今天书看到Android中横屏的适配。如图,在横屏模式下屏幕布局发生了偏差。可以看出横屏模式下右侧有明显的空间。为适配横屏有两种方式,一种是使用相对布局,以屏幕边界作为参照点进行布局。先上图。布局文件activity_main.xml

CentOS 6.10 下安装 GCC9.2.0-程序员宅基地

文章浏览阅读1k次。一、安装环境1.操作系统:CentOS 6.102.GMP:版本 6.2.0,下载链接:https://gmplib.org/download/gmp/gmp-6.2.0.tar.xz3.MPC:版本 1.1.0,下载链接:http://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz4.MPFR:版本 4.0.2,下载链接:https://www.mpfr...

随便推点

Android okHttp-Post的提交数据方式_requestbody.create(mediatype.parse("text/plain"), -程序员宅基地

文章浏览阅读389次。说明:学习记录HTTP content-type 对照表:https://www.runoob.com/http/http-content-type.htmlpost上传多个文件 //post上传多个文件 @Test public void uploadFileUnitTest() throws IOException { OkHttpClient okHttpClient = new OkHttpClient(); File file1 _requestbody.create(mediatype.parse("text/plain"), file))

ntp 4.2.6p5版本漏洞详细_ntp漏洞-程序员宅基地

文章浏览阅读2.3k次。1. NTP CRYPTO_ASSOC 内存泄漏导致拒绝服务漏洞 (CVE-2015-7701) 2. NTPD 栈缓冲区溢出漏洞(CVE-2014-9295) 3. NTPD PRNG无效熵漏洞(CVE-2014-9293) 4. NTPD PRNG弱加密漏洞(CVE-2014-9294) 5. NTP 身份验证绕过漏洞(CVE-2015-7871) 6. NTP Kiss-o'-Death拒绝服务漏洞 (CV..._ntp漏洞

PCB : 基础知识:顶层焊盘,顶覆盖层丝印,通孔安装,导线规则,敷铜,裁剪板子_pcb先画顶层丝印还是底层-程序员宅基地

文章浏览阅读1.4k次。.LOGPCB 单层板:一面有铜,另一面焊接,绝缘覆铜板,印刷,蚀刻,钻孔,裁剪双层板:两面都有铜,两面都可以布线,不同线通过过孔链接来替代单层板的飞线多层板:4层板在顶层和底层加入了,电源层和接地层,可以解决电磁干扰层 信号层signal 放元器件和铜导线,内部电源接地层 铺设电源和地,由铜膜构成,可提高抗EMI和稳定性机械层mechanical 说明性标注,尺寸,焊盘pad过孔..._pcb先画顶层丝印还是底层

深度认识Cookie_cookie路径是什么意思-程序员宅基地

文章浏览阅读281次。Cookie、Session的理解什么是Cookie二级目录三级目录什么是Cookie二级目录三级目录_cookie路径是什么意思

python必备知识_python 开发必备知识-程序员宅基地

文章浏览阅读69次。Python基础语法入门(2天):1.Python语言介绍、发展史、与其它语言的对比2.编程语言分类、解释型vs编译型优缺点3.Python环境安装、Pycharm IDE使用4.基本语法:变量、常量命名规范、程序执行、编码区别5.二进制的演化与运算6..pyc是什么鬼?7.实战案例:用户交互小程序8.基本数据类型:int、str、bool、list、dict、set9.流程控制:if、elif、..._python开发具备的知识

三分钟教会你认识hive以及安装hive,快进来学习点赞吧_怎么查找电脑有没有装hive-程序员宅基地

文章浏览阅读265次。一、hive1.发展史:07年8月 – 始于Facebook13年5月 – 0.11 Stinger Phase 1 ORC HiveServer213年10月 – 0.12.0 Stinger Phase 2 - ORC improvement14年4月 – Hive 0.13.0 as Stinger Phase 314年11月 – Hive 0.14.015年2月 – Hive 1.0.015年5月 – Hive 1.2.016年2月 – Hive 2.0.0 (添加 HPLSQL,_怎么查找电脑有没有装hive

推荐文章

热门文章

相关标签