在现代Web开发中,与服务器进行HTTP通信是一个常见的需求。Python的 requests库是一个强大且易于使用的HTTP库,它允许你发送HTTP/1.1请求,而无需手动添加查询字符串到URL,或格式化POST数据。本文将带你入门 requests库的基本使用。
首先,你需要安装 requests
库。你可以使用 pip
来安装:
pip install requests
发送一个简单的GET请求非常直观。你可以使用 requests.get()
方法:
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # 输出: 200
print(response.text) # 输出: 响应的文本内容
发送POST请求同样简单。你可以使用 requests.post()
方法,并传递数据:
import requests
data = {'key': 'value'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code) # 输出: 200
print(response.json()) # 输出: 响应的JSON内容
你可以在GET请求中传递URL参数。requests
允许你通过一个字典来传递这些参数:
import requests
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://httpbin.org/get', params=params)
print(response.url) # 输出: https://httpbin.org/get?key1=value1&key2=value2
print(response.text) # 输出: 响应的文本内容
requests
库提供了多种方法来处理响应。你可以检查响应的状态码、获取响应头、解析JSON数据等:
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # 输出: 200
print(response.headers) # 输出: 响应头
print(response.json()) # 输出: 解析后的JSON数据
在发送请求时,可能会遇到各种异常情况。requests
库提供了异常处理机制:
import requests
from requests.exceptions import HTTPError
try:
response = requests.get('https://api.github.com')
response.raise_for_status() # 如果响应状态码不是200,将抛出HTTPError异常
except HTTPError as http_err:
print(f'HTTP error occurred: {http_err}')
except Exception as err:
print(f'Other error occurred: {err}')
else:
print('Success!')
如果你需要在多个请求之间保持某些参数(如cookies),可以使用 requests.Session
对象:
import requests
with requests.Session() as session:
session.auth = ('user', 'pass')
response = session.get('https://httpbin.org/get')
print(response.text) # 输出: 响应的文本内容
requests
库是一个功能强大且易于使用的HTTP库,它简化了与Web服务进行通信的过程。通过本文的介绍,你应该已经掌握了如何发送GET和POST请求,如何传递URL参数,如何处理响应和异常,以及如何使用会话对象。希望这篇文章能帮助你快速入门 requests
库的使用。