python 学习之 request 库的基本使用
Python 学习之 requests
库的基本使用
requests
是一个功能强大且简洁的 Python 库,主要用于发送 HTTP 请求。它支持多种 HTTP 方法(如 GET、POST、PUT、DELETE 等),并提供了简单易用的接口来处理请求和响应,广泛应用于 Web 数据抓取、API 调用、自动化测试等领域。
本文将详细介绍 requests
库的基本使用方法,通过代码示例和图解帮助你更好地理解和掌握该库。
一、安装 requests
库
在开始使用 requests
库之前,首先需要安装它。可以使用 pip
安装:
安装完成后,你就可以在 Python 中导入并使用该库了。
二、发送 HTTP 请求
requests
库支持多种 HTTP 请求方法,包括 GET
、POST
、PUT
、DELETE
等。我们首先来看一下最常用的 GET
和 POST
请求的使用方法。
1. GET
请求
GET
请求通常用于从服务器获取数据。我们可以通过 requests.get()
方法发送一个 GET
请求,并获取服务器的响应。
示例:发送 GET
请求
说明:
requests.get()
:发送GET
请求。response.status_code
:获取响应的状态码(例如 200 表示请求成功)。response.text
:获取响应的文本内容。response.json()
:如果响应数据为 JSON 格式,可以使用.json()
方法将其转换为 Python 字典。
2. POST
请求
POST
请求通常用于向服务器提交数据。例如,提交表单数据或上传文件。我们可以通过 requests.post()
方法发送一个 POST
请求。
示例:发送 POST
请求
说明:
requests.post()
:发送POST
请求。data
:可以通过data
参数发送表单数据(字典形式)。response.json()
:获取响应的 JSON 数据。
三、传递参数
在发送请求时,常常需要携带一些查询参数(如 GET
请求的查询字符串)或表单数据(如 POST
请求)。requests
库提供了方便的方法来处理这些参数。
1. GET
请求中的查询参数
在 GET
请求中,可以通过 params
参数来传递查询字符串。
示例:传递查询参数
说明:
params
:将查询参数以字典的形式传递,requests
会自动将其转化为查询字符串并附加到 URL 后面。
2. POST
请求中的表单数据
POST
请求中的表单数据可以通过 data
参数传递。
示例:传递表单数据
说明:
data
:以字典的形式传递表单数据,requests
会将其编码为application/x-www-form-urlencoded
格式。
四、处理请求头
有时我们需要在请求中设置自定义请求头(如 User-Agent
、Authorization
等)。可以通过 headers
参数来传递请求头。
示例:设置请求头
说明:
headers
:将请求头信息以字典形式传递给requests.get()
或requests.post()
方法。
五、处理响应
HTTP 响应包括状态码、响应体、响应头等信息。requests
库提供了多种方法来访问这些信息。
1. 获取状态码
可以使用 response.status_code
获取 HTTP 响应的状态码。
2. 获取响应体
可以通过 response.text
获取响应的内容,返回的是字符串类型。
3. 获取 JSON 数据
如果响应内容是 JSON 格式,可以通过 response.json()
将其解析为 Python 字典。
4. 获取响应头
可以通过 response.headers
获取响应头,返回的是一个字典。
六、常见问题
1. 设置请求超时
为了避免请求卡住太长时间,可以设置请求超时时间。通过 timeout
参数来设置。
示例:设置请求超时
说明:
timeout
:设置请求的最大等待时间(秒)。如果请求超过该时间,将引发Timeout
异常。
2. 处理异常
requests
库在发送请求时可能会遇到各种网络异常,如连接错误、超时错误等。我们可以使用 try-except
来捕获这些异常。
示例:处理异常
说明:
response.raise_for_status()
:如果响应状态码不是 2xx,将抛出HTTPError
异常。
七、总结
requests
是一个非常简洁且功能强大的 Python 库,用于发送 HTTP 请求和处理响应。本文详细介绍了 GET
和 POST
请求的基本用法,并展示了如何传递参数、设置请求头、处理响应和常见的异常情况。
掌握了 requests
库后,你就可以轻松地进行 Web 数据抓取、调用 API、自动化测试等工作。希望通过本文的学习,你能更好地理解和使用 requests
库。
评论已关闭