Python Requests 最全使用指南

Python 的 requests 库是一个强大的 HTTP 请求库,它简化了与网页交互的过程,使得发送 HTTP 请求变得更加简单和直观。本文将详细介绍 requests 库的使用,包括基本的 GET 和 POST 请求、请求头、参数、处理响应等高级用法,提供一系列代码示例。

安装 Requests 库

在使用 requests 之前,需要先确保安装了这个库。可以通过以下命令进行安装:

pip install requests

基本用法

1. GET 请求

最常见的请求方式是 GET 请求。以下是一个简单的示例,演示如何使用 requests 发起一个 GET 请求:

import requests

response = requests.get('https://httpbin.org/get')
print(response.status_code)  # 打印响应状态码
print(response.json())       # 打印 JSON 格式的响应内容

2. POST 请求

与 GET 请求相对的是 POST 请求,它通常用于提交数据。下面的示例演示如何发送 POST 请求:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

3. 添加请求头

在某些情况下,你可能需要添加自定义请求头,例如用户代理、认证信息等。可以使用 headers 参数来实现:

import requests

headers = {
    'User-Agent': 'my-app',
    'Authorization': 'Bearer YOUR_TOKEN'
}
response = requests.get('https://httpbin.org/headers', headers=headers)
print(response.json())

4. URL 参数

当需要向请求中添加 URL 查询参数时,可以使用 params 参数。例如:

import requests

params = {'param1': 'value1', 'param2': 'value2'}
response = requests.get('https://httpbin.org/get', params=params)
print(response.url)  # 打印完整的请求 URL
print(response.json())

5. 超时设置

有时请求需要设置超时时间,以防止长时间等待。可以通过 timeout 参数设置超时时间(单位为秒):

import requests

try:
    response = requests.get('https://httpbin.org/delay/5', timeout=2)
except requests.Timeout:
    print("请求超时!")

6. 处理响应

requests 提供了多种处理响应的方式,包括获取文本、JSON 数据、二进制内容等。下面是一些示例:

response = requests.get('https://httpbin.org/get')

# 获取响应文本
print(response.text)

# 获取 JSON 数据
print(response.json())

# 获取二进制内容(例如图像)
# binary_content = response.content

7. 错误处理

在发送请求时,可能会遇到各种错误。requests 提供了 raise_for_status() 方法来处理这些情况:

import requests

try:
    response = requests.get('https://httpbin.org/status/404')
    response.raise_for_status()  # 如果响应状态码不是 200,将引发异常
except requests.HTTPError as e:
    print(f"HTTP 错误: {e}")

8. 会话保持

为了在多个请求中保持某些参数或信息,可以使用 requests.Session() 来创建会话对象。它会自动保存 cookies 和一些参数:

import requests

session = requests.Session()
session.headers.update({'User-Agent': 'my-app'})

# 第一次请求
response1 = session.get('https://httpbin.org/headers')
print(response1.json())

# 第二次请求仍然使用相同的会话
response2 = session.get('https://httpbin.org/cookies')
print(response2.json())

总结

Python 的 requests 库提供了一个简单且强大的接口来处理 HTTP 请求。通过上述示例,我们介绍了 GET 和 POST 请求、请求头、参数传递、响应处理和错误处理等基础用法。希望这篇文章能帮助你更好地理解和使用 requests 库进行网络请求。无论是构建爬虫、API 调用,还是进行数据交互,requests 都是一个不可或缺的工具。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部