Python requests使用方法
1. 简介
Python的requests库是一个强大且易于使用的HTTP库,用于发送HTTP请求。它简化了与API进行交互、执行Web爬虫等各种HTTP操作的过程。本文将详细介绍Python requests库的使用方法,包括发送不同类型的请求、处理响应、处理URL参数等。
2. 安装
使用pip命令可以轻松安装requests库:
pip install requests
3. 基本用法
导入requests库后,可以使用下面的代码发送GET请求并获取响应:
import requests
response = requests.get('https://api.example.com')
print(response.text)
上面的代码中,我们使用了requests.get()方法发送了一个GET请求,并将返回的响应保存在response变量中。使用response.text属性可以获取响应的内容。
4. 发送HTTP请求
4.1 GET请求
通过调用requests.get()方法可以发送GET请求,可以通过params参数传递URL参数,如下所示:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://api.example.com', params=payload)
print(response.text)
上面的代码中,我们使用了params参数传递了两个URL参数,发送了一个带参数的GET请求。
4.2 POST请求
使用requests.post()方法可以发送POST请求,可以通过data参数传递请求体内容,如下所示:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://api.example.com', data=payload)
print(response.text)
上面的代码中,我们使用了data参数传递了两个请求体参数,发送了一个带参数的POST请求。
4.3 其他请求方法
requests库还支持其他类型的请求方法,如PUT、DELETE等。可以通过调用相应的方法来发送这些类型的请求。
import requests
response = requests.put('https://api.example.com')
print(response.text)
response = requests.delete('https://api.example.com')
print(response.text)
5. 响应处理
5.1 响应内容
响应对象具有许多有用的属性,可以用于处理响应的不同方面。例如,使用response.text可以获取响应的文本内容,使用response.json可以获取响应的JSON内容。
import requests
response = requests.get('https://api.example.com')
print(response.text)
response = requests.get('https://api.example.com')
print(response.json())
上面的代码中,我们分别使用response.text和response.json()获取了响应的文本内容和JSON内容。
5.2 响应状态码
使用response.status_code可以获取响应的状态码,如下所示:
import requests
response = requests.get('https://api.example.com')
print(response.status_code)
上面的代码中,我们使用response.status_code获取了响应的状态码。
5.3 响应头部
使用response.headers可以获取响应的头部信息,如下所示:
import requests
response = requests.get('https://api.example.com')
print(response.headers)
上面的代码中,我们使用response.headers获取了响应的头部信息。
5.4 响应内容保存
使用response.content可以获取响应的二进制内容,可以将响应内容保存到文件中。
import requests
response = requests.get('https://api.example.com')
with open('response.txt', 'wb') as file:
file.write(response.content)
上面的代码中,我们使用response.content获取了响应的二进制内容,并将内容保存到response.txt文件中。
6. 异常处理
在进行HTTP请求时,可能会遇到各种异常情况,如超时、网络错误等。requests库提供了异常处理机制,可以使用try-except语句来捕获并处理异常。
import requests
try:
response = requests.get('https://api.example.com')
print(response.text)
except requests.exceptions.RequestException as e:
print('An error occurred:', e)
上面的代码中,我们使用try-except语句捕获了请求过程中可能发生的异常,并输出了相应的错误信息。
7. 设置请求头部
在发送请求时,可以设置请求头部信息,例如User-Agent、Referer等。
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
'Referer': 'https://www.example.com'
}
response = requests.get('https://api.example.com', headers=headers)
print(response.text)
上面的代码中,我们使用headers参数设置了User-Agent和Referer请求头部信息。
8. SSL证书验证
默认情况下,requests库会验证SSL证书,如果遇到SSL证书验证失败的情况,可以通过设置verify参数为False来禁用SSL证书验证。
import requests
response = requests.get('https://api.example.com', verify=False)
print(response.text)
上面的代码中,我们通过设置verify参数为False禁用了SSL证书验证。
9. 会话管理
使用requests.Session()可以创建一个会话对象,可以在多个请求中共享Cookie等相关信息。
import requests
session = requests.Session()
session.get('https://api.example.com/login')
response = session.post('https://api.example.com/user', data={'key': 'value'})
print(response.text)
上面的代码中,我们使用requests.Session()创建了一个会话对象,并在多个请求中共享了相关信息。
以上是Python requests库的基本用法和常用技巧的详细介绍。使用requests库可以轻松地发送HTTP请求、处理响应、设置请求头部等。它是Python中非常实用的网络请求库,适用于各种HTTP操作场景。