本文详细介绍了requests库的内容,包括其基本概念、使用方法以及如何发送GET、POST等HTTP请求。文章还涵盖了处理HTTP响应、传递参数与数据、使用Cookies和Headers以及错误处理等实用技巧。通过这些内容,读者可以全面了解和掌握requests库的使用方法。
Requests库简介 Requests库的作用Requests 是一个常用的 Python HTTP 客户端库,它简化了 HTTP 请求的发送过程,提供了简单易用的接口来处理 HTTP 请求和响应。Requests 库支持 GET、POST、PUT、DELETE 等多种 HTTP 方法,并且支持处理 Cookies 和 Headers,能够方便地发送和接收各种类型的 HTTP 数据。
安装Requests库的方法要使用 Requests 库,首先需要安装它。可以通过 Python 的包管理工具 pip 来安装 Requests 库。以下是安装步骤:
pip install requests
Requests库的基本概念
- Session 对象:用于持久化跨请求的数据。例如,同一个 Session 对象在发送多个请求时会保持相同的 Cookies。
- Response 对象:表示服务器的响应,可以从中获取响应内容、状态码、Headers 等信息。
- Request 对象:表示 HTTP 请求,可以设置 URL、Headers、数据等。
以下是这些对象的基本使用示例:
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)
发送HTTP请求
GET请求的发送方法
使用 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)
处理HTTP响应
获取响应内容
可以通过 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)
处理响应中的Cookies和Headers
获取Cookies
可以通过 response.cookies
获取响应中的 Cookies。以下是一个示例代码,展示了如何获取响应中的 Cookies:
import requests
response = requests.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
print(response.cookies)
获取Headers
可以通过 response.headers
获取响应中的 Headers。以下是一个示例代码,展示了如何获取响应中的 Headers:
import requests
response = requests.get('https://api.github.com')
print(response.headers)
参数与数据的传递
URL参数的传递
可以通过 params
参数来传递 URL 参数。以下是一个示例代码,展示了如何传递 URL 参数:
import requests
url = 'https://httpbin.org/get'
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get(url, params=params)
print(response.text)
POST请求中数据的传递
通过 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 数据。以下是一个示例代码,展示了如何发送包含 JSON 数据的 POST 请求:
import requests
url = 'https://httpbin.org/post'
data = {'key': 'value'}
response = requests.post(url, json=data)
print(response.text)
Cookies和Headers的使用
添加Cookies发送请求
可以通过 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自定义请求头
可以通过 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对象保持会话信息
通过 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)
错误处理
捕获和处理常见的HTTP错误
可以通过 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 状态码及其含义:
- 200 OK:请求成功。
- 400 Bad Request:请求有语法错误或无法解析。
- 401 Unauthorized:请求需要用户认证。
- 403 Forbidden:服务器理解请求但拒绝执行。
- 404 Not Found:服务器找不到请求的资源。
- 500 Internal Server Error:服务器内部错误。
通过 response.status_code
可以获取响应的状态码,并根据状态码进行相应的错误处理。
共同学习,写下你的评论
评论加载中...
作者其他优质文章