【request怎么使用】在日常开发或数据获取过程中,`requests` 是一个非常常用的 Python 库,用于发送 HTTP 请求。它简化了与 Web 服务的交互,使开发者能够轻松地获取网页内容、提交表单、处理 Cookie 等。下面将对 `requests` 的基本用法进行总结,并通过表格形式清晰展示其常用方法和参数。
一、简介
`requests` 是一个基于 Python 的 HTTP 客户端库,支持多种 HTTP 方法(如 GET、POST、PUT、DELETE 等),并且具有简单易用的 API 接口。相比 Python 自带的 `urllib` 模块,`requests` 更加友好且功能更强大。
二、常用方法及参数说明
方法 | 描述 | 示例 |
`requests.get(url, params=None, kwargs)` | 发送 GET 请求,获取网页内容 | `response = requests.get('https://example.com')` |
`requests.post(url, data=None, json=None, kwargs)` | 发送 POST 请求,常用于提交表单或 JSON 数据 | `response = requests.post('https://example.com/login', data={'user': 'test'})` |
`requests.put(url, data=None, kwargs)` | 发送 PUT 请求,用于更新资源 | `response = requests.put('https://example.com/api/123', data={'name': 'new'})` |
`requests.delete(url, kwargs)` | 发送 DELETE 请求,删除资源 | `response = requests.delete('https://example.com/api/123')` |
`requests.head(url, kwargs)` | 发送 HEAD 请求,获取响应头信息 | `response = requests.head('https://example.com')` |
`requests.options(url, kwargs)` | 发送 OPTIONS 请求,查看服务器支持的 HTTP 方法 | `response = requests.options('https://example.com')` |
三、常见参数说明
参数 | 类型 | 说明 |
`url` | str | 请求的目标 URL |
`params` | dict | 要附加到 URL 的查询字符串参数 |
`data` | dict / bytes | 发送到服务器的表单数据 |
`json` | dict | 发送到服务器的 JSON 数据 |
`headers` | dict | 自定义请求头信息 |
`cookies` | dict | 设置请求中的 cookies |
`auth` | tuple | 认证信息(如用户名和密码) |
`timeout` | int / float | 设置请求超时时间(秒) |
`allow_redirects` | bool | 是否允许重定向,默认为 True |
四、返回对象详解
`requests` 发送请求后会返回一个 `Response` 对象,该对象包含以下常用属性:
属性 | 说明 |
`response.status_code` | HTTP 响应状态码(如 200 表示成功) |
`response.text` | 响应的文本内容(自动解码) |
`response.json()` | 将响应内容解析为 JSON 格式 |
`response.headers` | 获取响应头信息 |
`response.cookies` | 获取服务器设置的 cookies |
`response.url` | 获取实际请求的 URL(可能因重定向而变化) |
五、示例代码
```python
import requests
GET 请求
response = requests.get('https://api.example.com/data')
print(response.status_code)
print(response.text)
POST 请求
data = {'username': 'test', 'password': '123456'}
response = requests.post('https://api.example.com/login', data=data)
print(response.json())
设置 headers 和 timeout
headers = {'User-Agent': 'MyApp/1.0'}
response = requests.get('https://example.com', headers=headers, timeout=5)
```
六、注意事项
- 在使用 `requests` 时,建议先安装该库:`pip install requests`
- 部分网站可能会检测 User-Agent,可以自定义 headers 来模拟浏览器访问。
- 注意处理异常情况,例如网络错误、超时等,可使用 `try-except` 进行捕获。
总结
`requests` 是一个功能强大且易于使用的 Python HTTP 客户端库,适用于大多数常见的网络请求场景。掌握其基本用法和常用参数,可以帮助你快速实现网页抓取、API 调用等功能。结合合理的错误处理和请求优化,能有效提升程序的稳定性和效率。