
python的requests库
发布日期:2021-05-14 15:21:38
浏览次数:22
分类:精选文章
本文共 1600 字,大约阅读时间需要 5 分钟。
python的requests库
作用: 发送网络请求,返回响应数据
为什么要学习requests,而不是urllib?
使用requests库而不是urllib有以下几个原因:
requests的底层实现就是urllib
requests库基于Python的标准库urllib底层实现,但通过抽象层使接口更加友好。requests在python2和python3中通用,方法完全一样
无论是Python2还是Python3,requests库的使用方法一致,避免了版本差异问题。requests简单易用
requests库的API设计简洁直观,使用起来非常方便。Requests能够自动帮助我们解压(gzip压缩等)网页内容
在获取网页内容时,requests能够自动识别并解压压缩格式,减少了手动处理的工作量。Urllib库
Urllib是Python内置的HTTP请求库,虽然功能基础但功能较为简单。它是requests库的底层库,但使用起来相对低级。
实例代码
发送GET请求
import requestsr = requests.get('https://api.github.com/events')
发送不同类型的请求
r = requests.post('http://httpbin.org/post', data = {'key':'value'})r = requests.put('http://httpbin.org/put', data = {'key':'value'})r = requests.delete('http://httpbin.org/delete')r = requests.head('http://httpbin.org/get')r = requests.options('http://httpbin.org/get')
获取返回内容
# 使用r.text获取字符串内容r = requests.get('https://www.baidu.com/')print(r.text)# 查看字符编码print(r.encoding)# 设置编码r.encoding = "utf-8"print(r.encoding)# 使用r.content获取原始二进制数据print(r.content) # bytes类型数据,需要decode解码print(r.content.decode()) # 转换为字符串
请求库保存图片
import requestsr = requests.get("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png")# 保存图片到本地文件with open("test.png","wb") as f: f.write(r.content)
requests库的优势
简洁易用
相比urllib,requests库的API设计更加简洁,调用次数减少。自动处理压缩格式
requests能够自动识别并解压网页内容,减少了手动处理的麻烦。处理各种HTTP方法
不仅支持GET,还支持POST、PUT、DELETE、HEAD等多种HTTP方法。返回完整的响应对象
通过response对象可以获取大量HTTP响应数据,包括状态码、头信息等。适用于多种开发场景
无论是Web开发、API调用,还是数据抓取,都可以通过requests轻松实现。总结
requests库是现代Python开发中必不可少的工具之一。它不仅简化了HTTP请求的实现,还提供了丰富的功能,帮助开发者快速完成各种网络操作。如果你还在使用urllib,尝试一下requests库,你会发现它的强大之处。
发表评论
最新留言
很好
[***.229.124.182]2025年04月08日 07时49分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
04_Mysql配置文件(重要参数)
2019-03-06
JavaSE总结
2019-03-06
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
2019-03-06
Python IO编程
2019-03-06
CSS入门总结
2019-03-06
使用 TortoiseGit 时,报 Access denied 错误
2019-03-06
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2019-03-06
django-表单之模型表单渲染(六)
2019-03-06
c++之程序流程控制
2019-03-06
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
2019-03-06
有道云笔记 同步到我的博客园
2019-03-06
李笑来必读书籍整理
2019-03-06
Hadoop(十六)之使用Combiner优化MapReduce
2019-03-06
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2019-03-06
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2019-03-06
IOS开发Swift笔记16-错误处理
2019-03-07
flume使用中的一些常见错误解决办法 (地址已经使用)
2019-03-07
andriod 开发错误记录
2019-03-07