【Python】一文教你如何使用 Requests 库

news/2024/11/15 5:38:50/

 

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?type=blog个人简介:打工人。

持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。

如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666@foxmail.com 

 

目录

简介

发展史

Requests 库的主要功能包括:

        1. 发送 HTTP 请求

        2. 处理响应结果

        3. Session 管理

        4. 文件上传和下载

        5. 其他特性

使用步骤

        1. 安装 Requests 库

        2. 发送 HTTP 请求

        3. 处理响应结果

        4. Session 管理

        5. 文件上传和下载

以下是更多使用 Requests 库的示例代码:

        1. 使用 POST 方法发送 HTTP 请求,并传递 URL 参数和请求头:

        2. 自动处理 JSON 格式的响应结果:

        3. 使用代理服务器:

        4. 超时设置:

 总结


简介

        Requests 库是一个简洁易用的 Python HTTP 库,它基于 urllib3 库,可以用来发送 HTTP 请求,并处理响应结果。Requests 库提供了一种更人性化的接口,让用户更容易地编写 HTTP 请求代码。相比于 Python 自带的 urllib/urllib2 库,Requests 功能更加完整且易用,而且支持多种协议和认证方式,具有更好的扩展性和可读性。

发展史

        Requests 库是由 Kenneth Reitz 开发的。Kenneth 是一个 Python 社区的活跃成员,2011 年他发表了一篇名为 “Python HTTP: When in doubt, or when not in doubt, use Requests” 的博客,这篇文章介绍了他开发的 Requests 库,并强调了 Requests 库的易用性、友好性、可扩展性等优点。自此,Requests 库开始成为 Python 社区中最流行的 HTTP 库之一。Requests 库的当前版本是 2.26.0,是一个稳定、功能完善的 HTTP 库。

Requests 库的主要功能包括:

        1. 发送 HTTP 请求

        Requests 库可以发送 HTTP 请求,其中包括 GET、POST、PUT、PATCH、DELETE 等常见的 HTTP 请求方法,还支持定制请求头、请求参数、请求体、Cookie 等信息。同时,Requests 库还支持 HTTPS 和代理服务器等特性。

        2. 处理响应结果

        Requests 库可以处理 HTTP 响应结果,包括获取响应头、状态码、响应体、Cookies 等信息。同时,Requests 库还支持编码、解码响应结果、自动解析 JSON 和 XML 格式的响应结果。

        3. Session 管理

        Requests 库支持 Session 管理,可以让用户在多个请求之间共享 Cookie、用户认证等信息。同时,Session 还支持本地存储、代理和 SSL 验证等特性。

        4. 文件上传和下载

        Requests 库还支持上传和下载文件,可以处理文件的二进制流和文本流,同时还支持断点续传等特性。

        5. 其他特性

        Requests 库还支持重定向处理、认证、代理、超时控制、SSL 验证等特性,使得用户可以更好地控制 HTTP 请求的行为。

使用步骤

        1. 安装 Requests 库

        使用 pip 工具可以很方便地安装 Requests 库。

pip install requests

        如果是Linux,没有安装 pip 工具,请先使用以下命令安装: 

sudo apt-get install python-pip

        2. 发送 HTTP 请求

         使用 Requests 库可以很容易地发送 HTTP 请求。以下是一个简单的代码:

import requestsresponse = requests.get('https://www.baidu.com')
print(response.text)

        在上面的代码中,我们使用 requests 库发送了一个 HTTP GET 请求,获取了百度首页的 HTML 内容,并打印输出了响应结果的文本内容。当然,除了 GET 请求之外,还可以发送 POST、PUT、PATCH、DELETE 等请求方法,以及定制请求头、请求参数、请求体等信息。

        3. 处理响应结果

        处理 HTTP 响应结果也非常简单。以下是一个简单的代码:

import requestsresponse = requests.get('https://www.baidu.com')
print(response.status_code)
print(response.headers)
print(response.cookies)
print(response.text)

        在上面的代码中,我们使用 requests 库发送了一个 HTTP GET 请求,并获取了响应结果的状态码、响应头、Cookies 和文本内容。Requests 库还支持获取响应结果的二进制内容、JSON 和 XML 格式的结果等。同时,还支持自定义解析器,以便处理非标准的响应格式。 

        4. Session 管理

        使用 Requests 库的 Session 管理,可以在多个请求之间共享 Cookie、用户认证等信息。以下是一个 Session 简单的管理代码:

import requestss = requests.Session()s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get('http://httpbin.org/cookies')
print(r.text)

        在上面代码中,我们创建了一个 Session 对象 s,自动处理 Cookie,并发送了两个 GET 请求。第一个请求设置了 Cookie 的值,第二个请求获取了当前的 Cookie 值。在第二个请求中,使用了 Session 对象 s,它自动携带了第一个请求中设置的 Cookie 值。 

        5. 文件上传和下载

        使用 Requests 库可以方便地上传和下载文件。以下是一个简单的文件上传代码:

import requestsurl = 'http://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)
print(r.text)

        在上面代码中,我们使用 Requests 库发送了一个 HTTP POST 请求,上传了一个名为 report.xls 的文件,并打印输出了响应结果的文本内容。

以下是更多使用 Requests 库的示例代码:

        1. 使用 POST 方法发送 HTTP 请求,并传递 URL 参数和请求头:

import requestsurl = 'http://httpbin.org/post'
payload = {'key1': 'value1', 'key2': 'value2'}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.post(url, data=payload, headers=headers)
print(response.text)

        2. 自动处理 JSON 格式的响应结果:

import requestsurl = 'https://jsonplaceholder.typicode.com/todos/1'
response = requests.get(url)
data = response.json()
print(data)

        3. 使用代理服务器:

import requestsproxies = {'http': 'http://localhost:8080','https': 'https://localhost:8080',
}
response = requests.get('http://httpbin.org/ip', proxies=proxies)
print(response.text)

        4. 超时设置:

import requestsresponse = requests.get('http://github.com', timeout=1)
print(response.text)

 总结

        Requests 库是一个功能强大、易用并受到广泛支持的 Python HTTP 库,它以其易用性、友好性、可扩展性等特点成为 Python 社区中最流行的 HTTP 库之一。Requests 提供了丰富的功能,包括发送 HTTP 请求、处理响应结果、Session 管理、文件上传和下载、代理服务器、重定向处理、认证、超时控制、SSL 验证等,同时提供了清晰、简单的 API,让用户更容易理解和使用。在开发 Python 网络应用程序时,Requests 库是不可或缺的一部分,可以使代码更加清晰、简洁和易于维护。

 


http://www.ppmy.cn/news/280574.html

相关文章

cas 6 单点登录登出管理

cas自带的登出是通过登出地址后面接的service地址进行跳转,但是对于service没有进行验证,这边我们网络渗透测试后说可能被钓鱼需要进行验证所以开始了以下操作。 1找资料 首先到cas官网找,发现项目有自带的是否跳转,跳转地址参数…

数学基础第一天

#数学基础第一天 ##O&#xff08;n) O(n)是幂次&#xff0c;f(x)O(g(x)),f(x)与g(x)的最高幂次相同&#xff0c;存在x_0,M&#xff0c;使得x>x_o时&#xff0c;f(x)<Mg(x)成立 o(n),f(x)o(g(x)),f(x)的最高幂次比g(x)小&#xff0c;对于任意的a,存在x_0,使得x>x_0时,…

有了 HTTP,为什么还要推出 RPC?

RPC 和 HTTP 都是网络通信协议&#xff0c;但它们有以下区别 定义 RPC 是一种客户端调用远程服务器上的函数或方法&#xff0c;并获得返回值的机制&#xff1b;HTTP 是一种应用层协议&#xff0c;广泛用于在 Web 浏览器和 Web 服务器之间交换数据 使用 RPC 通常用于分布式系…

燃气scada系统重启服务器,国内燃气SCADA系统发展现状及其意义

原标题&#xff1a;国内燃气SCADA系统发展现状及其意义 随着西气东输一线、二线以及其他国家级天然气输配管网的建设&#xff0c;国内各主要燃气企业如北京、天津、上海、重庆、武汉、徐州、绍兴等城市都在有计划地推进或完成了燃气门站及城市管网的关键数据采集及监控系统&…

燃气轮机发电系统matlab仿真模型,基于MATLAB的微型燃气轮机发电系统的建模及仿真.doc...

WORD完美格式 技术资料 专业整理 独立运行和并网模式下微型燃气轮机的建模与性能分析 Modeling and Performance Analysis of Microturbine in Independent Operation and Grid - Connection Mode ABSTRACT: The microturbine generation system will be the most widely used …

用生活案例讲述:erp系统是什么?有哪些作用?

很多人在谈到企业信息化的时候&#xff0c;一般都会聊到erp&#xff0c;那么究竟erp管理是什么意思呢&#xff1f;具体作用有哪些&#xff1f;下面织信小编就跟大家简单的讲解一下吧。 一、erp系统是什么意思&#xff1f; ERP&#xff0c;是Enterprise Resource Planning的缩…

管网gis系统 服务器,管网GIS系统可以实现什么功能

随着科技的发展,越来越多的城市在各种建设中开始运用GIS系统,智能化的管理城市建设,促进城市的智能化发展。 GIS系统,就是利用GIS空间数据管理技术,将用户感兴趣的管网、附属设施设备等叠加到带有位置坐标属性的地图上,从而赋予了地理属性,同时这些感兴趣图层带有本身的…

燃气管道泄漏监测监控报警管理系统软件解决方案

燃气管道泄漏监测监控报警管理系统软件解决方案 华盛恒辉燃气系统是城市基础设施的重要组成部分&#xff0c;燃气泄漏导致中毒、爆炸、火球、火焰等安全事故造成财产损失甚至危及生命&#xff0c;燃气管网在线监测意义重大&#xff0c;提前预知危险&#xff0c;及时止损&#…