1 requests库简介
requests 是一个用于发送 HTTP 请求的流行 Python 库。它提供了简洁而直观的 API,使得与 Web 服务进行交互变得非常方便。requests 库可以完成多种 HTTP 请求操作,如发送 GET、POST、PUT、DELETE 等请求,设置请求头、处理响应以及会话管理等功能。
下面是 requests 库的一些主要特点和功能:
- 简洁易用:requests 的 API 设计非常简单易懂,上手容易,使用它可以轻松地发送 HTTP 请求、处理响应等操作。
- 支持多种请求方式:requests 支持发送多种类型的 HTTP 请求,包括 GET、POST、PUT、DELETE 等,并且支持自定义请求头、请求参数、请求体等。
- 会话管理:
requests.Session
类提供了会话管理功能,可以在多个请求之间保持会话状态,例如保持登录状态、传递 cookie 等。 - 强大的响应处理能力:requests 可以方便地处理各种类型的响应结果,包括文本、JSON、图片、文件等,还支持响应的编码和解码。
- 完善的错误处理机制:requests 对网络请求中可能出现的异常情况进行了处理,如超时、连接错误等,同时提供了对 HTTP 错误状态码的处理功能。
与其他库一样,如需要安装requests库,使用一下命令即可
pip install requests
2 发送GET请求
使用 requests 库发送 GET 请求非常简单,只需要调用 requests.get()
方法,并传入目标 URL 即可。
import requests # 发送 GET 请求 url = 'https://api.example.com/users' response = requests.get(url) # 检查响应状态码 if response.status_code == 200: # 获取响应内容(文本格式) content = response.text print(f'Response content: {content}') else: print('Failed to retrieve data. Status code:', response.status_code)
在上述示例代码中,我们使用了 requests.get() 方法来发送 GET 请求,并指定目标 URL 为 'https://api.example.com/users'
。接着,我们通过检查 response
对象的 status_code
属性来判断请求是否成功(200 表示成功)。如果成功,我们可以通过 response.text
来获取响应内容,并将其打印出来。如果请求失败,则打印相应的错误信息和状态码。
注意:在实际应用中,可能需要更多的参数来发送 GET 请求,例如请求头、请求参数等。requests
库提供了丰富的选项来满足不同场景的需求,可以根据具体情况进行相应的设置。
3 发送POST请求
使用 requests 库发送 POST 请求同样非常简单,需要调用 requests.post()
方法,并传入目标 URL 和请求数据即可。
import requests # 发送 POST 请求 url = 'https://api.example.com/users' data = {'name': 'John', 'age': 25} response = requests.post(url, data=data) # 检查响应状态码 if response.status_code == 200: # 获取响应内容(文本格式) content = response.text print(f'Response content: {content}') else: print('Failed to submit data. Status code:', response.status_code)
在上述示例代码中,我们使用了 requests.post()
方法来发送 POST 请求,并指定目标 URL 为 'https://api.example.com/users'
。其中,data 是一个字典,包含了需要发送给服务器的数据。
接下来,我们使用 response
对象的 status_code
属性来检查请求是否成功(200 表示成功)。如果成功,我们可以通过 response.text
来获取响应内容,并将其打印出来。如果请求失败,则打印相应的错误信息和状态码。
4 参数传递
在使用 requests 库发送请求时,你可以通过参数来传递额外的信息,例如请求头、请求参数、认证凭据等。
- headers:用于设置请求头,包含了请求的元数据信息,如 User-Agent、Content-Type 等。
- params:用于传递查询字符串参数,将参数附加到 URL 上。
- data:用于传递表单数据或请求体数据,常用于 POST 请求。
- json:用于传递 JSON 数据,常用于 POST 请求。
- auth:用于进行身份验证,支持多种验证方式,如基本身份验证 (Basic Authentication)、摘要身份验证 (Digest Authentication) 等。
示例代码:
import requests # 设置请求头 headers = {'User-Agent': 'Mozilla/5.0'} url = 'https://api.example.com/users' params = {'page': 1} data = {'name': 'John', 'age': 25} json_data = {'name': 'John', 'age': 25} auth = ('username', 'password') # 发送 GET 请求(带请求头和查询字符串参数) response = requests.get(url, headers=headers, params=params) # 发送 POST 请求(带请求头和表单数据) response = requests.post(url, headers=headers, data=data) # 发送 POST 请求(带请求头和 JSON 数据) response = requests.post(url, headers=headers, json=json_data) # 发送带身份验证的请求 response = requests.get(url, auth=auth)
在上述示例代码中,我们使用了不同的参数来发送请求。通过传递 headers
参数可以设置请求头,传递 params
参数可以将查询字符串参数附加到 URL 上,传递 data
参数可以传递表单数据或请求体数据,传递 json
参数可以传递 JSON 数据,传递 auth
参数可以进行身份验证。
另外,可以参考官方文档或库的文档来了解更多参数细节和使用方法。