本文详细介绍了requests库的内容,包括其基本概念、使用方法以及如何发送GET、POST等HTTP请求。文章还涵盖了处理HTTP响应、传递参数与数据、使用Cookies和Headers以及错误处理等实用技巧。通过这些内容,读者可以全面了解和掌握requests库的使用方法。
Requests 是一个常用的 Python HTTP 客户端库,它简化了 HTTP 请求的发送过程,提供了简单易用的接口来处理 HTTP 请求和响应。Requests 库支持 GET、POST、PUT、DELETE 等多种 HTTP 方法,并且支持处理 Cookies 和 Headers,能够方便地发送和接收各种类型的 HTTP 数据。
要使用 Requests 库,首先需要安装它。可以通过 Python 的包管理工具 pip 来安装 Requests 库。以下是安装步骤:
pip install requests
以下是这些对象的基本使用示例:
import requests # 创建一个 Session 对象 session = requests.Session() # 使用 Session 对象发送 GET 请求 response = session.get('https://api.github.com') print(response.text) # 通过 Session 对象发送 POST 请求 url = 'https://httpbin.org/post' data = {'key': 'value'} response = session.post(url, data=data) print(response.text)
使用 Requests 发送 GET 请求非常简单。以下是一个示例代码,展示了如何发送一个 GET 请求并获取响应内容:
import requests response = requests.get('https://api.github.com') print(response.text)
这段代码将发送一个 GET 请求到 https://api.github.com
,并打印出响应的内容。
发送 POST 请求时,可以通过 requests.post
方法来实现。下面是一个示例代码,展示了如何发送一个包含数据的 POST 请求:
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) print(response.text)
这段代码将发送一个 POST 请求到 https://httpbin.org/post
,并将 {'key': 'value'}
作为数据发送。
除了 GET 和 POST,Requests 还支持其他 HTTP 方法,例如 PUT 和 DELETE。以下是一个使用 requests.put
发送 PUT 请求的示例:
import requests url = 'https://httpbin.org/put' data = {'key': 'value'} response = requests.put(url, data=data) print(response.text)
下面是一个使用 requests.delete
发送 DELETE 请求的示例:
import requests url = 'https://httpbin.org/delete' response = requests.delete(url) print(response.text)
可以通过 response.text
获取响应的文本内容。以下是一个示例代码,展示了如何获取响应的内容:
import requests response = requests.get('https://api.github.com') print(response.text)
可以通过 response.status_code
获取响应的状态码。以下是一个示例代码,展示了如何获取响应的状态码:
import requests response = requests.get('https://api.github.com') print(response.status_code)
可以通过 response.cookies
获取响应中的 Cookies。以下是一个示例代码,展示了如何获取响应中的 Cookies:
import requests response = requests.get('https://httpbin.org/cookies/set/sessioncookie/123456789') print(response.cookies)
可以通过 response.headers
获取响应中的 Headers。以下是一个示例代码,展示了如何获取响应中的 Headers:
import requests response = requests.get('https://api.github.com') print(response.headers)
可以通过 params
参数来传递 URL 参数。以下是一个示例代码,展示了如何传递 URL 参数:
import requests url = 'https://httpbin.org/get' params = {'key1': 'value1', 'key2': 'value2'} response = requests.get(url, params=params) print(response.text)
通过 data
参数传递 POST 请求中的数据。以下是一个示例代码,展示了如何发送包含数据的 POST 请求:
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) print(response.text)
通过 json
参数传递 JSON 数据。以下是一个示例代码,展示了如何发送包含 JSON 数据的 POST 请求:
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, json=data) print(response.text)
可以通过 cookies
参数来添加 Cookies 发送请求。以下是一个示例代码,展示了如何添加 Cookies 发送请求:
import requests url = 'https://httpbin.org/cookies/set/sessioncookie/123456789' response = requests.get(url) print(response.text) url = 'https://httpbin.org/cookies' response = requests.get(url, cookies={'cookie_name': 'cookie_value'}) print(response.text)
可以通过 headers
参数来自定义请求头。以下是一个示例代码,展示了如何自定义请求头发送请求:
import requests url = 'https://httpbin.org/headers' headers = {'User-Agent': 'my-app/0.4.0'} response = requests.get(url, headers=headers) print(response.text)
通过 Session
对象可以保持会话信息,例如 Cookies。以下是一个示例代码,展示了如何使用 Session
对象保持会话:
import requests s = requests.Session() s.get('https://httpbin.org/cookies/set/sessioncookie/123456789') response = s.get('https://httpbin.org/cookies') print(response.text)
可以通过 response.raise_for_status()
方法来捕获 HTTP 错误。以下是一个示例代码,展示了如何捕获和处理 HTTP 错误:
import requests response = requests.get('https://httpbin.org/status/404') try: response.raise_for_status() except requests.exceptions.HTTPError as error: print(f"HTTP error occurred: {error}")
HTTP 状态码用于描述请求的状态。以下是一些常见的 HTTP 状态码及其含义:
通过 response.status_code
可以获取响应的状态码,并根据状态码进行相应的错误处理。