requests 是 Python 中最受欢迎的 HTTP 客户端库之一,用于发送各种 HTTP 请求。它被设计成易于使用,使 HTTP 请求变得尽可能简单。由于其简洁和高效的特性,requests 在网络爬虫、数据抓取、测试 API 等领域广泛应用。
主要特性
-
简单易用:
- 通过简洁的 API 提供强大的功能,使得发送 HTTP 请求变得非常直观。
-
支持各种请求类型:
- 支持所有常见的 HTTP 请求类型,如 GET、POST、PUT、DELETE 等。
-
自动管理会话:
- 可以自动处理 Cookies,无需手动管理。
-
支持 SSL/TLS 验证:
- 支持 HTTPS 请求,并可自定义 SSL 证书验证。
-
超时控制:
- 允许你设置请求超时时间。
-
异常处理:
- 明确的错误和异常处理机制。
基本使用示例
安装 requests:
pip install requests
发送 GET 请求
import requests
response = requests.get('https://api.github.com')
# 响应内容
print(response.text)
# JSON 响应体
print(response.json())
# HTTP 状态码
print(response.status_code)
# 响应头
print(response.headers)
发送 POST 请求
import requests
data = {'key': 'value'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.text)
异常处理
import requests
from requests.exceptions import HTTPError
try:
response = requests.get('https://api.github.com/nonexistent')
response.raise_for_status()
except HTTPError as http_err:
print(f'HTTP error occurred: {http_err}') # 比如:404 Client Error
except Exception as err:
print(f'Other error occurred: {err}') # 其他错误
else:
print('Success!')
使用参数
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://httpbin.org/get', params=payload)
print(response.url) # 输出构造的 URL
requests 提供了一个易于理解和使用的 API 来发送 HTTP 请求,使其成为 Python 中进行网络请求的首选库。适用于各种级别的用户,从初学者到专业开发人员。