在上一篇文章中,我们介绍了Requests
库的基本概念与安装方法。Requests
库是一个强大的Python库,允许我们以简单的方式进行HTTP请求。在这一篇中,我们将深入探讨如何使用Requests
库发起GET请求。
什么是GET请求? GET请求是HTTP协议中最常见的请求类型之一。它用于请求访问指定资源,通常是从服务器获取数据。例如,当你在浏览器中输入一个URL并回车时,浏览器实际上就是在发起一个GET请求。
发起GET请求 使用Requests
库发起GET请求非常简单。我们可以使用以下代码:
1 2 3 import requestsresponse = requests.get('http://example.com' )
在这个例子中,我们首先导入了requests
库,然后使用requests.get()
方法发起了一个GET请求到http://example.com
。返回值response
是一个包含服务器响应数据的对象。
查看响应内容 要查看GET请求得到的响应内容,我们可以访问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 requestsusername = 'octocat' 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 requestsparams = { '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”相关的仓库,并按星标数量排序。我们将查询参数q
和sort
作为字典传递给params
,Requests
库会自动将其编码为URL查询字符串。
处理错误和异常 在发起GET请求时,我们还需要考虑如何处理可能出现的错误或异常。常见的错误包括网络问题、无效的URL或服务器返回错误的状态码。
我们可以使用try...except
结构来捕获和处理异常。例如:
1 2 3 4 5 6 7 8 9 import requeststry : response = requests.get('https://api.github.com/users/octocat' ) response.raise_for_status() 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请求,我们将在其中讨论表单数据的发送和如何上传文件。请继续关注我们的系列教程!