Python中的requests库使用详解

在Python的众多第三方库中,requests库因其简单易用而广受欢迎。该库用于发送HTTP请求,它封装了底层的网络请求,使得用户能够方便地与网络接口进行交互。无论是从API获取数据,还是进行网页爬虫,requests库都是一个不可或缺的工具。

安装requests库

在使用requests库之前,我们需要安装它。可以使用pip命令进行安装:

pip install requests

基本用法

发送GET请求

requests库通过简单的API提供了发送HTTP请求的功能。我们先来看一个基本的GET请求示例:

import requests

# 发送GET请求
response = requests.get('https://jsonplaceholder.typicode.com/posts')

# 查看响应状态码
print('响应状态码:', response.status_code)

# 打印响应内容
print('响应内容:', response.text)

在这个示例中,我们向一个示例API发送了GET请求,并打印了响应的状态码和内容。response.status_code可以用来检查请求是否成功,状态码200表明请求成功。

发送POST请求

除了GET请求外,requests库也支持发送POST请求,通常用于提交数据。以下是一个POST请求的示例:

import requests

# 要提交的数据
data = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}

# 发送POST请求
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)

# 查看响应状态码
print('响应状态码:', response.status_code)

# 打印响应内容
print('响应内容:', response.json())

在这里,我们通过requests.post方法发送了一个POST请求,并将数据作为JSON格式提交。response.json()可直接将响应内容解析为JSON格式的字典。

处理请求参数

在发送GET请求时,我们常常需要携带查询参数。此时,可以使用params关键字参数:

import requests

# 定义查询参数
params = {
    'userId': 1
}

# 发送GET请求
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)

# 打印响应内容
print('回应内容:', response.json())

在这个例子中,通过将查询参数添加到params字典中,我们可以轻松地构建包含查询参数的URL。

添加请求头

有时我们需要在请求中添加自定义请求头,例如API密钥或用户代理,这可以通过headers参数实现:

import requests

# 自定义请求头
headers = {
    'User-Agent': 'my-app/0.0.1',
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}

# 发送GET请求
response = requests.get('https://jsonplaceholder.typicode.com/posts', headers=headers)

# 打印响应内容
print('回应内容:', response.json())

错误处理

网络请求可能会失败,因此我们需要添加错误处理代码。例如,我们可以检查状态码,或在请求异常时捕获错误:

import requests

try:
    response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
    response.raise_for_status()  # 检查请求是否成功
    print('回应内容:', response.json())
except requests.exceptions.HTTPError as err:
    print('HTTP错误:', err)
except requests.exceptions.RequestException as err:
    print('请求错误:', err)

在上面的示例中,raise_for_status()方法用于检查是否有HTTP错误发生,如果状态码不是200,它将抛出异常。

结尾

requests库为我们提供了一个简洁、方便的方式来进行网络请求。它的功能强大且易于上手,非常适合用于数据获取、API交互以及网页爬取等任务。通过学习和实践,开发者能够充分利用这一工具,提高工作效率。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部