Python Requests 模块 - HTTP 请求2024年8月29日 | 阅读 7 分钟 在本教程中,我们将学习 Python 请求模块,以及如何使用 Python 请求库处理请求。我们还将讨论请求的功能。最后,我们将学习如何针对不同情况优化和自定义这些功能。 引言通常,我们会在网站上查找一些信息。或者我们可能想访问社交媒体账户、查看邮件、观看在线视频。我们通常会使用网络浏览器发送请求,网络服务器会返回所需的结果。要从互联网获取信息,我们需要通过网络浏览器发送请求。 例如 - 我们在 Google 上搜索 Python 教程。然后请求会向 Google 服务器发送 HTTP 请求,服务器会返回带有状态码的搜索结果。 通信的启动主要有两个组成部分:客户端和服务器。我们使用 HTTP(超文本传输协议),它实现了客户端和服务器之间通过互联网的通信。 Python 提供了 requests 模块,它允许我们使用 Python 脚本发出这些请求。 Python 请求模块requests 模块是在 Python 中发出 HTTP 请求的标准方式。它是 Python 最强大的工具,允许我们在网络上发送请求。它包含许多功能和方法来发送 HTTP 请求。发送请求的系统称为客户端,承载网络服务器的系统称为服务器。 在使用 requests 时,我们会遇到以下方法。
我们将在后面的文章中讨论更多相关内容。 Python request 模块包含许多简单的 API,这些 API 有助于处理这些请求。这些 API 具有许多功能,例如添加标头、发送自定义标头、通过 URL 传递参数等等。 安装要开始使用 requests,第一步是使用以下命令在 Python 中安装 request 模块。 语法 或 我们还可以使用 Pipenv(Python 打包工具)来安装 request 模块。输入以下命令。 在文件中导入 requests 模块以检查是否成功安装。为此,请键入以下命令。 GET 请求GET 请求是 Python requests 模块最通用的方法之一。它指定用户试图从指定资源检索数据。换句话说,它用于向 URL 发送请求。要调用 GET 请求,我们使用以下语法。 语法 说明 在上述方法中,url 参数是用户发送请求的特定网站的 URL。param 参数用于在字典中发送查询字符串,args 是多个命名参数之一。 当 GET 请求成功发送后,该方法将返回一个 requests.Response 对象。此对象保存从服务器收到的响应。我们可以将 get() 请求结果赋给变量。 此对象保存从服务器收到的响应。因此,我们可以将 get() 请求结果赋给变量。 发出 GET 请求使用 requests 模块发出 HTTP 请求非常简单。 参数
以下是发出 GET 请求的代码。 示例 - 输出 ISO-8859-1 200 0:00:01.007097 https://tpointtech.cn/ [ POST 请求POST 方法用于使用 post() 方法发送信息。基本语法如下。 语法 参数
POST 方法返回 requests.Response 对象。 状态码状态码是我们发出 GET 或 POST 请求后获得的响应。状态码告知我们请求的状态。 响应有许多可用的状态码。例如,当我们的请求成功时,状态码将是 200 或 201,404 状态码是错误的请求或未找到我们正在寻找的页面。 我们还可以使用此信息在代码中做出决策。 有一点绝不能忘记,此方法不验证状态码是否等于 200。这是因为 200 到 400 范围内的其他状态码,例如 204 NO CONTENT,从某种意义上说也被认为是成功的。 例如 - 204 将表示请求成功,但消息正文中没有内容返回。 JSON 响应JSON 代表 JavaScript 对象表示法,它是一种最流行的数据传输格式。JSON 数据可以很容易地被网络浏览器读取。数据以字典形式(键值对)存储。 如何将 JSON 转换为 Python 字典?我们使用 r.json() 方法从 JSON 响应创建 Python 字典。让我们看以下示例。 代码 输出 {'args': {}, 'data': '', 'files': {}, 'form': {'password': '1234', 'username': 'mathew'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '29', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.25.1', 'X-Amzn-Trace-Id': 'Root=1-60b711e8-60f535db7df2f6a61f710e29'}, 'json': None, 'origin': '132.154.100.245', 'url': 'https://httpbin.org/post'} 存储在变量中JSON 数据可以转换为 Python 字典,也可以存储在变量中。让我们理解以下示例。 代码 输出 {'password': '1234', 'username': 'mathew'} 请求头我们可以使用 get() 方法创建自定义标头。HTTP 标头的字典通过 headers 参数传递给 get()。 让我们理解下面的例子。 代码 输出 Text matches: [{'object_url': 'https://api.github.com/repositories/4290214', 'object_type': 'Repository', 'property': 'description', 'fragment': 'Requests + Gevent = <3', 'matches': [{'text': 'Requests', 'indices': [0, 8]}]}] 解释 - 在上面的代码中,Accepts 标头是应用程序可以处理的内容类型。例如,我们使用了标头值 application/vnd.github.v3.text-match+json,这是一个专有的 GitHub Accept 标头。标头的内容是 JSON 格式。 会话管理请求会话管理是维护会话状态和持久化 HTTP 请求参数的过程。能够存储身份验证和凭据、Cookie 等。 Cookie 持久化 会话支持 Cookie 的程序化处理和管理。在会话中发出多个请求时,初始响应中收到的 Cookie 会被存储并随后自动包含在后续请求中。 连接持久化 会话还支持在向同一服务器发出多个请求时重用底层 TCP 连接。这通过避免为每个请求建立新连接的开销来提高性能。 共享参数 会话对象允许您设置应应用于该会话中所有请求的通用边界或标头。例如,您可以设置自定义标头,如客户端代理、接受编码或内容类型,这些标头将自动包含在通过会话发出的所有后续请求中。 认证 如果网站需要验证,会话对象提供了一种方便的方法,可以一次验证并在整个会话中保持验证状态。 其他重要的 HTTP 方法除了 GET 和 POST 方法,HTTP 中还有一些重要的方法,包括 PUT、DELETE、HEAD、PATCH 和 OPTIONS。这些方法用于创建、读取、更新和删除 (或 CRUD) 操作。下面是 HTTP 方法的摘要表。
最佳实践
结论我们已经讨论了 Python request 模块的基本细节,这些细节对于发出基本的服务器请求非常有用。 主要问题是 get() 方法不如 post() 方法安全,因为请求只能通过 URL 传递。因此,敏感密码可能被黑客窃取。 我们还提到了重要的 HTTP 方法以及如何使用自定义标头发送请求。如果您想了解更多关于请求模块的信息,可以访问其编写精良的请求文档。 |
在本教程中,我们将学习用户如何使用 Python 根据条件在 Pandas DataFrame 中选择行。用户可以使用“>”、“=”、“<=”、“>=”、“!=”运算符根据特定列值选择行。条件:我们将讨论可以应用于...
阅读20分钟
我们大多数人都听说过“缓存”这个词,但并非所有听说过这个词的人都了解它。在计算机技术中,缓存是一种软件或硬件组件,用于存储数据(计算机上执行的活动数据……)
阅读 12 分钟
如何在 Python 中创建虚拟环境?介绍 什么是虚拟环境?虚拟环境是一个隔离的 Python 环境,允许您独立于系统范围的 Python 安装来安装和管理包。Python 应用程序通常会使用不随附的包和附加模块...
阅读 4 分钟
什么是?在本教程中,我们将讨论如何在 Python 程序中使用不同的关系运算符。关系运算符也称为比较运算符,它们的主要功能是根据操作数的值返回真或假。以下是...
阅读 4 分钟
?自然语言处理 (NLP) 是计算机科学的一个领域,与人工智能、信息工程和人机交互相关。该领域的重点是计算机可以编程来处理和分析大量自然语言数据。这并不容易做到,因为...
阅读 3 分钟
字典是 Python 中最常用的数据类型之一。它是键:值对的无序集合。每个值都有一个对应的键来标识它。字典是可变集合,意味着我们可以修改值。使一个...
阅读 4 分钟
什么是 OS 模块?在 Python 编程语言中,我们有一个 OS 模块,用于执行与操作系统相关的各种操作。它有许多内置函数,我们无需安装此模块。路径是...
阅读 3 分钟
想象一个数组,其中所有元素都出现三次,除了一个只出现一次的元素。找出只出现一次的那个元素。我们应该在 O(n) 时间复杂度和 O(1) 额外空间内解决这个问题。示例 输入:arr[] = {2, 5, 6, 6, 5, 1,...
7 分钟阅读
简介:Twitter API(应用程序编程接口)是一组工具,它支持开发人员应用程序与 Twitter 平台之间的程序化交互。通过使用 Twitter API,开发人员可以访问和检索数据、发布新推文、检索用户信息等等。这使得构建应用程序成为可能...
阅读 4 分钟
深度学习已被证明是解决图像识别、语音识别和自然语言处理等各个领域复杂问题的有力工具。然而,传统的深度学习模型(如卷积神经网络 (CNN))存在一些局限性。CNN 在检测特征方面表现出色……
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India