10 使用Requests库发起GET请求

在上一篇文章中,我们介绍了Requests库的基本概念与安装方法。Requests库是一个强大的Python库,允许我们以简单的方式进行HTTP请求。在这一篇中,我们将深入探讨如何使用Requests库发起GET请求。

什么是GET请求?

GET请求是HTTP协议中最常见的请求类型之一。它用于请求访问指定资源,通常是从服务器获取数据。例如,当你在浏览器中输入一个URL并回车时,浏览器实际上就是在发起一个GET请求。

发起GET请求

使用Requests库发起GET请求非常简单。我们可以使用以下代码:

1
2
3
import requests

response = requests.get('http://example.com')

在这个例子中,我们首先导入了requests库,然后使用requests.get()方法发起了一个GET请求到http://example.com。返回值response是一个包含服务器响应数据的对象。

查看响应内容

要查看GET请求得到的响应内容,我们可以访问response对象的text属性:

1
print(response.text)

这将打印出服务器返回的HTML内容。如果服务器返回的是JSON格式的数据,我们还可以使用json()方法将其解析为Python字典:

1
2
response_json = response.json()
print(response_json)

示例:获取GitHub用户信息

让我们通过一个具体的例子来说明如何使用GET请求获取数据。假设我们想获取某个GitHub用户的信息,我们可以使用以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import requests

username = 'octocat' # GitHub用户名
url = f'https://api.github.com/users/{username}'

response = requests.get(url)

if response.status_code == 200:
user_info = response.json()
print(f"用户名: {user_info['login']}")
print(f"公开仓库数量: {user_info['public_repos']}")
print(f"个人网站: {user_info['blog']}")
else:
print("请求失败,状态码:", response.status_code)

在上述代码中,我们首先定义了一个要查询的GitHub用户名,然后构建了对应的API URL。接着,使用requests.get()发起GET请求。我们检查了响应的状态码,如果状态码是200(表示请求成功),则解析返回的JSON数据并打印出用户信息;如果请求失败,则输出错误的状态码。

处理请求参数

在进行GET请求时,有时需要将查询参数附加到URL后面。Requests库提供了一个非常方便的方式来处理这些参数。我们可以将参数作为字典传递给params参数,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
import requests

params = {
'q': 'python requests',
'sort': 'stars'
}
response = requests.get('https://api.github.com/search/repositories', params=params)

if response.status_code == 200:
results = response.json()
print(f"找到的仓库数量: {results['total_count']}")
else:
print("请求失败,状态码:", response.status_code)

在这个示例中,我们通过GitHub的搜索API查询与“python requests”相关的仓库,并按星标数量排序。我们将查询参数qsort作为字典传递给paramsRequests库会自动将其编码为URL查询字符串。

处理错误和异常

在发起GET请求时,我们还需要考虑如何处理可能出现的错误或异常。常见的错误包括网络问题、无效的URL或服务器返回错误的状态码。

我们可以使用try...except结构来捕获和处理异常。例如:

1
2
3
4
5
6
7
8
9
import requests

try:
response = requests.get('https://api.github.com/users/octocat')
response.raise_for_status() # 检查请求是否成功,状态码为4xx或5xx将引发异常
user_info = response.json()
print(f"用户名: {user_info['login']}")
except requests.exceptions.RequestException as e:
print(f"发生错误: {e}")

在这个示例中,我们使用raise_for_status()方法检查请求的状态码,如果状态码表示错误,它将引发一个异常,我们可以捕获这个异常并处理。

总结

本篇文章介绍了如何使用Requests库发起GET请求,包括如何查看响应内容、发送请求参数以及处理异常。GET请求非常适合获取数据,在进行网页访问自动化时,Requests库将是你不可或缺的工具。

下一篇将介绍如何使用Requests库发起POST请求,我们将在其中讨论表单数据的发送和如何上传文件。请继续关注我们的系列教程!

10 使用Requests库发起GET请求

https://zglg.work/web-python-auto/10/

作者

AI免费学习网(郭震)

发布于

2024-08-11

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论