content,text和string方法的区别

  • content & text
  • text & string

content & text

源码

 @propertydef 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 HTTPheaders, following RFC 2616 to the letter. If you can take advantage ofnon-HTTP knowledge to make a better guess at the encoding, you shouldset ``r.encoding`` appropriately before accessing this property."""#content的完整代码就不贴了。@propertydef content(self):"""Content of the response, in bytes."""

结论

  • request.text():返回的是Unicode型的数据。
    request.text():获取爬取的页面内容
  • request.content():返回的是bytes型也就是二进制的数据。
    request.content():一般用于获取二进制数据,如:爬取图片
# 爬取二进制文件,并将其存入文件中
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}# 使用get()将URL传入
URL = 'https://www.baidu.com/img/bd_logo1.png'r = requests.get(URL, headers=headers)
print(r.status_code)# r.content:二进制, 将二进制写入文件中
with open(r'D:\Python\PyWorkSpace\Crawl\baidu.png', 'wb') as fp:fp.write(r.content)

也就是说,如果你想取文本,可以通过r.text
如果想取图片,文件,则可以通过r.content。(resp.json()返回的是json格式数据)

text & string

爬虫练习中,我发现stringtext使用不一样,后来了解到:

  • .string可以返回当前节点中的内容,但是当前节点包含子节点时,.string不知道要获取哪一个节点中的内容,返回None
  • .text(或者.get_text()) 可以返回当前节点所包含的所有文本内容,包括当前节点的子孙节点

如:在爬取全国天气高温榜时

在我想要获取今天气温时:

  • 发现div标签中还有其他标签< em >
  • 在使用 div.string时获取的不是全部内容,而只有部分温度值,或者返回None
  • 后来参考大佬代码,使用text():获取div里面的所有内容,因此便解决了问题,顺利取出温度值
# 循环该容器中子标签for item in tag.children:# 判断item是否为bs4的Tag类型(是不是标签)if (isinstance(item, bs4.element.Tag)):# 返回所有div子标签的html文档,一个列表div = item('div')# 获取每一个div标签中的内容list.append([div[0].text, div[1].text, div[2].text, div[3].text])

感谢努力,加油!
站在巨人肩膀上前进
感谢其他大佬

Python中request的content,text和string方法的区别相关推荐

  1. Python中 redis StrictRedis对象操作string类型

    Python中 redis StrictRedis对象操作string类型 准备 在桌面上创建redis目录 使用pycharm打开 redis目录 创建redis_string.py文件 from ...

  2. 小结两种在Python中导入C语言扩展库的方法

    小结两种在Python中导入C语言扩展库的方法 分类: Pythoner2009-08-18 20:44 2563人阅读 评论(1) 收藏 举报 python扩展c语言importstring 一种是 ...

  3. 解惑(三)----- 深入理解Python中的self参数和__init__(self)方法--通过类比Java语言

    一.前言 在这里我想通过用Python和Java语言的类比来对Python中的self参数和__init__(self)方法做一个深入的解释.这样可以加深对self参数和__init__(self)方 ...

  4. python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别

    1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...

  5. Python中多线程thread与threading的实现方法

    Python中多线程thread与threading的实现方法 这篇文章主要介绍了Python中多线程thread与threading的实现方法,很重要的应用,需要的朋友可以参考下 学过Python的 ...

  6. 详解Python中pyautogui库的最全使用方法

    这篇文章主要介绍了详解Python中pyautogui库的最全使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值 在使用Python做脚本的话,有两个库可以使用,一个 ...

  7. Python中pyautogui库的最全使用方法

    Python中pyautogui库的最全使用方法 Python中pyautogui库的最全使用方法 常用操作 鼠标操作 键盘操作 弹窗操作 图像操作 参考资料 Python中pyautogui库的最全 ...

  8. python csv库,Python 中导入csv数据的三种方法

    Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文 ...

  9. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

最新文章

  1. 『科学计算』可视化二元正态分布3D科学可视化实战
  2. 序列模式挖掘、频繁项集与频繁序列
  3. 039_Unicode对照表五
  4. 最终产品的质量需求是什么?
  5. fastdfs上传文件时报错No route to host
  6. 第一个flash游戏--配对游戏
  7. python 状态机第三方库_Python 状态机 - osc_8g11urw7的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 可解释性系列论文:Mathematics of Deep Learning
  9. SQLServer的本月统计和本周统计
  10. 05 基本数据类型+五大数据类型
  11. ZigBee2006 CC2430 按键流程
  12. 今生梦一场,思念你的殇
  13. 【复习】Listening and Reading Comprehension
  14. JVM中的Xms和Xmx
  15. 只有蓝色www.zcool.com.cn
  16. 项目销售实用技巧(精华,销售,售前必看)
  17. C# 网络编程之网页简单下载实现
  18. 关于两RS485系统共地的问题
  19. Flask学习笔记(四): Flask与数据库连接
  20. [转]普通软件项目开发过程规范(五)—— 总结

热门文章

  1. uefi模式安装windows10和deepin
  2. linux中选取一行的命令,使用cut选择一行中的部分内容--用Enki学Linux系列(13)
  3. c++面试常见题·Part 2 数据结构和STL
  4. 关于Docker,你要知道的都在这了
  5. 【CSP-S2019模拟】09.24比赛总结
  6. 经纬度换算数值_Excel中经纬度数据转换公式
  7. 华硕b365安装服务器系统,华硕B365主板搭载intel8/9代平台安装win7的详细教程
  8. fatal error: opencv2/opencv_modules.hpp: No such file or directory(linux系统,opencv4)
  9. Harbor项目高手问答及赠书活动火热进行中
  10. 打卡赠书的几点重要说明