目录
HTTP 请求
HTTP 响应
安装 Python requests
使用 Python requests 发出我们的第一个 GET 请求
检查 Python 请求的响应
使用 API
自定义标头
首页 后端开发 Python教程 初学者的HTTP Python请求指南

初学者的HTTP Python请求指南

Feb 18, 2025 am 09:56 AM

A Beginner's Guide to HTTP Python Requests

网络上的所有内容都可通过请求访问。如果您的 Python 应用程序需要网页信息,则需要发出 Web 请求。本文将深入探讨 Python 请求。我们将了解 Web 请求的结构以及如何发出 Python 请求。最终,您将能够使用 Python requests 库,这将使整个过程更加轻松。

要点

  • HTTP(超文本传输协议)是一种用于在 Web 上交换数据的客户端-服务器协议。它使用 TCP 作为传输协议以实现可靠的传输。HTTP 请求由客户端发起,并由服务器处理,服务器返回相应的响应。HTTP 是无状态的,这意味着连续两次请求之间没有关联。
  • Python requests 库简化了在 Python 中发出 HTTP 请求的过程。它抽象了发出请求的复杂性,提供了一个易于使用的接口。该库允许发送从基本到复杂的 Python HTTP 请求。它可以使用 pip 安装,并用于发出 GET 请求、处理状态代码、读取响应正文以及与 API 交互。
  • HTTP 标头在 HTTP 通信中提供附加信息。它们可以在 Python requests 库中进行自定义,以提供有关发送者或消息的附加信息。例如,User-Agent 标头提供有关发出请求的客户端的信息,而 Accept-Language 标头则传达客户端可以理解的语言。

HTTP 请求简介

要在 Web 上交换数据,我们首先需要一个通信协议。我们在浏览 Web 时使用的协议是超文本传输协议,或 HTTP。HTTP 使用 TCP 作为传输协议,因为它需要可靠的传输,而只有 TCP 才能保证这一点。

假设有一个我们需要的资源——例如位于世界某个地方的 Web 服务器上的 HTML 页面。我们想要访问此资源,或者换句话说,我们想要在我们的 Web 浏览器中查看该页面。我们首先要做的是发出 HTTP 请求。HTTP 是一种客户端-服务器协议,这意味着请求由客户端发起。

服务器收到请求后,会对其进行处理并返回相应的响应。

服务器的回复方式可能有所不同。它可能会发送我们请求的资源,或者如果出现意外情况,则会回复状态代码。

在每个通信协议中,信息都需要位于特定的字段中。这是因为客户端和服务器都应该知道如何解释请求或响应。在接下来的部分中,我们将了解 HTTP 请求和 HTTP 响应的构建方式。我们还将讨论最重要字段的作用。

HTTP 请求

HTTP 最重要的设计特性之一是它是人类可读的。这意味着当我们查看 HTTP 请求时,即使底层有很多复杂性,我们也可以轻松地阅读所有内容。HTTP 的另一个特性是它是无状态的。这意味着连续两次请求之间没有关联。HTTP 协议不记得任何之前的请求。这意味着每个请求都必须包含服务器执行请求所需的一切。

有效的 HTTP 请求必须包含以下元素:

  • HTTP 方法——例如 GET 或 POST
  • HTTP 协议的版本
  • 要获取的资源的路径

然后,我们还可以添加一些可选的标头,这些标头指定有关发送者或消息的附加信息。常用 HTTP 请求标头的示例包括 User-Agent 或客户端首选的自然语言。这两个可选标头都提供了有关发出请求的客户端的信息。

这是一个 HTTP 消息示例,我们可以清楚地理解所有指定的字段:

<code>~~~http
GET / HTTP/1.1
Host: www.google.com
Accept-Language: en-GB,en;q=0.5
~~~</code>
登录后复制
登录后复制

第一行指定请求类型和 HTTP 协议的版本。然后,我们指定发出请求的客户端接受的主机和语言。通常,消息要长得多,但这可以提示它们的外观。

HTTP 响应

现在我们了解了 HTTP 请求的外观,我们可以继续查看 HTTP 响应。

HTTP 响应通常包含以下元素:

  • HTTP 协议的版本
  • 状态代码,带有描述性简短消息
  • HTTP 标头列表
  • 包含请求资源的消息正文

现在我们已经介绍了您需要的基本元素,在采取下一步之前,值得总结一下。现在应该清楚的是,每当客户端想要与 HTTP 服务器通信时,它都必须创建并发送 HTTP 请求。然后,当服务器收到它时,它会创建并发送 HTTP 响应。

我们终于准备好介绍 Python requests 库了。

Python requests 库

Python requests 库允许您发送 Python HTTP 请求——从基本请求到复杂请求。Python requests 库抽象了发出复杂 Python 请求的复杂性,提供了一个易于使用的接口。在接下来的部分中,我们将了解如何创建简单的 Python 请求并解释响应。我们还将了解 Python requests 库提供的一些功能。

安装 Python requests

首先,我们需要安装 Python requests 库。让我们使用 pip 安装它:

<code>$ pip install requests</code>
登录后复制
登录后复制

正确安装 Python requests 库后,我们就可以开始使用它了。

使用 Python requests 发出我们的第一个 GET 请求

首先,我们需要创建一个 Python 文件。在此示例中,我们将其命名为 web.py。在此源文件中,插入以下代码:

<code>import requests

URL = "https://www.google.com"
resp = requests.get(URL)

print(resp)</code>
登录后复制

此程序对 Google 发出 GET 请求。如果我们运行此程序,我们可能会得到以下输出:

<code>$ python web.py
<response></response></code>
登录后复制

那么,这是什么意思呢?

我们之前讨论过状态代码。此输出告诉我们我们的请求已成功接收、理解和处理。还有其他代码,我们可以列出一些最常见的代码:

  • 301 Moved Permanently。这是一条重定向消息。我们正在查找的资源的 URL 已移动。新 URL 附带响应。
  • 401 Unauthorized。这表示客户端错误响应。在这种情况下,服务器告诉我们必须先进行身份验证才能继续发出请求。
  • 404 Not found。这也表示客户端错误响应。特别是,这意味着服务器找不到我们正在查找的资源。

如果我们想有条件地检查状态,并根据状态代码提供不同的操作呢?我们可以轻松地做到这一点:

<code>~~~http
GET / HTTP/1.1
Host: www.google.com
Accept-Language: en-GB,en;q=0.5
~~~</code>
登录后复制
登录后复制

如果我们现在运行脚本,我们将得到不同的结果。尝试一下,看看我们得到了什么。?

如果我们还需要每个状态代码附带的描述性简短消息,可以使用 resp.reason。对于 200 状态代码,我们将简单地得到 OK。

检查 Python 请求的响应

此时,我们知道如何发出基本的 Python 请求。请求之后,我们需要响应,对吧?

在上一节中,我们看到了如何获取响应的状态代码。现在,我们想要读取响应的主体,即我们请求的实际资源。为此,我们需要使用 resp.content。假设我们正在查找 Google 首页。

当我们运行脚本时,我们会得到以下内容:

<code>$ pip install requests</code>
登录后复制
登录后复制

我添加了 [...],因为我们获得的资源(一个 text/html 文档)太长而无法打印。有多长?我们可以使用 len(resp.content) 获取此信息。在上面的例子中,它是 13931 字节——在这里打印肯定太多了!

(以下内容由于篇幅限制,仅保留概要,详细内容请参考原文)

使用 API

Python requests 库之所以如此受欢迎,原因之一是它使与 API 的交互变得非常容易。在本例中,我们将使用一个简单的 API 来预测一个人的年龄,给定他们的姓名。此 API 称为 Agify。

自定义标头

HTTP 标头为 HTTP 通信的双方提供附加信息。在以下示例中,我们将看到如何更改 HTTP GET 请求的标头。特别是,我们将更改 User-Agent 和 Accept-Language 标头。User-Agent 告诉服务器有关请求代理的应用程序、操作系统和供应商的一些信息。Accept-Language 标头传达客户端能够理解的语言。

结论

在本文中,我们讨论了 HTTP 协议,并进行了简短的理论介绍。然后,我们研究了 Python requests 库。我们了解了如何编写基本的 Python HTTP 请求以及如何根据我们的需求对其进行自定义。

关于 Python 中 HTTP 请求的常见问题

(以下内容由于篇幅限制,仅保留问题,详细内容请参考原文)

  • Python 中的 requests 库是什么?
  • 如何安装 requests 库?
  • 如何使用 requests 发出简单的 GET 请求?
  • 如何在 GET 请求中处理查询参数?
  • 如何使用 requests 发出 POST 请求?

以上是初学者的HTTP Python请求指南的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1653
14
CakePHP 教程
1413
52
Laravel 教程
1304
25
PHP教程
1251
29
C# 教程
1224
24
Python vs.C:申请和用例 Python vs.C:申请和用例 Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

您可以在2小时内学到多少python? 您可以在2小时内学到多少python? Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

Python:游戏,Guis等 Python:游戏,Guis等 Apr 13, 2025 am 12:14 AM

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

2小时的Python计划:一种现实的方法 2小时的Python计划:一种现实的方法 Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python与C:学习曲线和易用性 Python与C:学习曲线和易用性 Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python:探索其主要应用程序 Python:探索其主要应用程序 Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

Python和时间:充分利用您的学习时间 Python和时间:充分利用您的学习时间 Apr 14, 2025 am 12:02 AM

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python:多功能编程的力量 Python:多功能编程的力量 Apr 17, 2025 am 12:09 AM

Python因其简洁与强大而备受青睐,适用于从初学者到高级开发者的各种需求。其多功能性体现在:1)易学易用,语法简单;2)丰富的库和框架,如NumPy、Pandas等;3)跨平台支持,可在多种操作系统上运行;4)适合脚本和自动化任务,提升工作效率。

See all articles