手记

学习Python的request资料:入门级教程

概述

本文介绍了如何使用Python的requests库来发送和处理HTTP请求,包括安装、基本的GET和POST请求、处理响应以及设置请求头等。文章详细讲解了如何使用request资料来获取和解析服务器返回的数据,并提供了多个示例代码帮助读者理解具体操作。此外,还讨论了错误处理和API请求的实际应用,帮助读者更好地掌握requests库的使用方法。

Python的request库简介

什么是request库

requests 是一个用 Python 编写的第三方库,用于发送 HTTP 请求和接收响应,它是 Python 编程语言中最流行的 HTTP 库之一。这个库简化了发送 HTTP 请求的过程,提供了简洁和易用的接口,使开发者能够方便地与 Web 服务进行交互。

安装request库的简单步骤

安装 requests 库可以使用 pip 工具,这是 Python 的包管理器。以下是在命令行中安装 requests 的步骤:

pip install requests

此命令会自动下载并安装最新的 requests 库到计算机中。请确保 Python 的环境变量已设置正确,以便 pip 命令可以被识别。

基本的GET请求

发送GET请求的方法

使用 requests 库发送 GET 请求的基本方法是使用 requests.get 函数。这个函数会返回一个 Response 对象,其中包含了从服务器接收到的所有响应数据。

import requests

response = requests.get("https://www.example.com")

在上面的例子中,requests.get 函数向 https://www.example.com 发送了一个 GET 请求,并将响应存储在变量 response 中。

获取响应内容

从服务器接收到的数据可以通过 Response 对象的属性来访问。例如,使用 .text 属性可以获取响应的文本内容。

import requests

response = requests.get("https://www.example.com")
content = response.text
print(content)

通过调用 response.text,可以获取服务器返回的 HTML 内容,然后通过 print 函数输出到终端。

基本的POST请求

发送POST请求的方法

发送 POST 请求的方法与 GET 请求类似,使用 requests.post 函数。POST 请求通常用于向服务器提交数据,例如表单提交。

import requests

response = requests.post("https://www.example.com")

在这个例子中,requests.post 函数向 https://www.example.com 发送了一个 POST 请求。

包含数据的POST请求

POST 请求通常包含一些数据,这些数据可以用字典的形式传递给 requests.post 函数。这些数据通常会以 application/x-www-form-urlencodedmultipart/form-data 格式发送。

import requests

data = {"key": "value"}
response = requests.post("https://www.example.com", data=data)

此代码示例向 https://www.example.com 发送了一个 POST 请求,并附带了一个名为 key 的表单字段,其值为 value

处理响应

读取响应的状态码

HTTP 响应通常包含一个状态码,它表示请求是否成功。状态码 200 表示请求成功,404 表示未找到资源,500 表示服务器错误等。

import requests

response = requests.get("https://www.example.com")
status_code = response.status_code
print("Status code:", status_code)

此代码示例中,通过 response.status_code 获取响应的状态码并打印出来。

获取响应的文本或JSON数据

HTTP 响应的文本内容可以通过 .text 属性获取,JSON 格式的响应数据可以通过 .json() 方法转换为 Python 的字典对象。

import requests

response = requests.get("https://api.example.com/data")
json_data = response.json()
print(json_data)

此代码示例中,.json() 方法将响应的内容解析为字典,并打印出来。

设置请求头

添加自定义的请求头

在某些情况下,需要向 HTTP 请求添加自定义的请求头(Headers)。requests 库允许通过 headers 参数传递一个字典,以便添加额外的头信息。

import requests

headers = {"User-Agent": "MyCustomUserAgent"}
response = requests.get("https://www.example.com", headers=headers)

此代码示例中,headers 参数用于设置一个名为 User-Agent 的自定义头信息。

使用请求头控制下载速度

可以通过设置 AcceptContent-Type 请求头来控制服务器返回的内容类型,例如,使用 Accept 来指定客户端期望接收的数据类型。

import requests

headers = {"Accept": "application/json"}
response = requests.get("https://api.example.com/data", headers=headers)

此代码示例中,通过 Accept 请求头指定客户端期望接收 JSON 格式的数据。

错误处理

常见的错误类型

使用 requests 库时可能会遇到多种错误类型,包括网络错误、HTTP 错误等。常见的错误类型有:

  • ConnectionError:网络连接失败
  • HTTPError:服务器返回一个错误状态码
  • Timeout:请求超时
  • TooManyRedirects:重定向次数过多
  • MissingSchema:请求 URL 缺少模式(如 http 或 https)

使用try-except结构处理异常

为了使代码更加健壮,可以使用 try-except 语句来捕获并处理这些异常。

import requests

try:
    response = requests.get("https://www.example.com")
    response.raise_for_status()  # 如果响应状态码不是 200,则抛出异常
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

此代码示例中,try-except 结构用于捕获所有 requests 库引发的异常。response.raise_for_status() 方法会抛出一个异常,如果响应的状态码不是 200。

实践示例:API请求

以下是一个完整的示例,演示如何使用 requests 库从一个公开的天气 API 获取数据。

获取天气数据

假设有一个公开的天气 API,可以通过以下步骤获取天气数据:

  1. 导入 requests 库。
  2. 发送 GET 请求到 API URL。
  3. 解析响应的 JSON 数据。
import requests

def get_weather_data():
    url = "https://api.openweathermap.org/data/2.5/weather?q=Beijing&appid=your_api_key"
    response = requests.get(url)
    if response.status_code == 200:
        json_data = response.json()
        return json_data
    else:
        print(f"HTTP Error {response.status_code}")
        return None

weather_data = get_weather_data()
print(weather_data)

此代码示例中,get_weather_data 函数向天气 API 发送一个 GET 请求,并返回解析后的 JSON 数据。如果响应状态码不是 200,则打印错误信息并返回 None

变量与类型

变量与类型简介

在 Python 中,变量是用来存储数据的容器。Python 是一种动态类型语言,这意味着变量的类型可以在运行时自动推断出来。Python 中有几种基本的数据类型,包括整型、浮点型、字符串和布尔型。

# 整型
integer = 123
print(type(integer))

# 浮点型
floating_point = 123.456
print(type(floating_point))

# 字符串
string = "Hello, world!"
print(type(string))

# 布尔型
boolean = True
print(type(boolean))

此代码示例展示了如何定义不同类型的变量,并使用 type 函数来获取它们的类型。

变量的使用和赋值

变量可以在程序中被重新赋值,它们的类型也会相应地改变。以下是一些关于变量赋值和类型转换的例子。

# 变量赋值
a = 10
print(a)
a = "Hello"
print(a)

# 类型转换
num = 123
str_num = str(num)
print(type(str_num))

# 使用变量进行计算
b = 5
result = a + str(b)
print(result)

此代码示例中,变量 a 的类型从整型变为字符串。str() 函数用于将整型变量 num 转换为字符串。最后,变量 ab 通过加号连接成一个新的字符串。

0人推荐
随时随地看视频
慕课网APP