欢迎访问宙启技术站
智能推送

Requests库中的get()函数:向指定URL发送HTTP请求并返回响应对象。

发布时间:2023-06-23 03:25:09

Requests库是用于发送HTTP请求及处理HTTP响应的Python第三方库。Requests库是基于Python之父Guido van Rossum的另一款库Urllib3的基础上构建的,它简化了发起HTTP请求的过程,使得用户能够更加容易地处理HTTP请求和响应。

Requests库中的get()函数是其最常用的方法之一。该函数用于向指定的URL发起HTTP GET请求,并返回响应对象。下面我们将对get()函数的使用进行详细介绍。

使用get()函数发起HTTP GET请求

get()函数的基本语法如下:

response = requests.get(url, params=None, **kwargs)

其中,参数url表示要请求的URL地址,params是一个字典类型的参数,表示请求时需要传递的查询字符串参数,**kwargs则代表可选的其他关键字参数。

首先,我们需要导入requests库:

import requests

接下来,我们可以使用get()函数发起HTTP GET请求:

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

在上述代码中,我们向http://www.example.com发起了一个简单的HTTP GET请求,并将服务器的响应保存在response变量中。

然而,在实际情况中,通常需要为GET请求添加查询字符串参数。例如,我们需要向http://www.example.com/search发起一个搜索请求,并传递一个名为q的查询字符串参数,表示搜索的关键词。

下面是一个示例:

params = {'q': 'Python'}

response = requests.get('http://www.example.com/search', params=params)

在上述代码中,我们使用了一个名为params的字典参数,其中包含一个键值对,键为'q',值为'Python',表示搜索关键词是Python。

如果查询字符串参数中有多个键值对,则可以使用字典类型的多个键值对来传递参数。例如:

params = {'q': 'Python', 'page': 2}

response = requests.get('http://www.example.com/search', params=params)

在上述示例中,我们将两个查询字符串参数q和page都包含在了params字典中。

处理HTTP响应

在使用get()函数发起HTTP GET请求后,我们可以用response对象来处理服务器返回的HTTP响应结果。

首先,我们可以查看HTTP响应的状态码,例如是否成功返回200:

if response.status_code == 200:

    print('HTTP GET request succeeded!')

如果HTTP请求失败,我们可以通过抛出HTTPError异常来处理错误:

response.raise_for_status()

此外,我们可以获取服务器返回的HTTP响应正文。

例如,我们可以通过response对象的text属性获取HTML页面的内容:

print(response.text)

如果请求的是JSON数据,则可以使用json()方法来将响应正文解码为Python对象:

json_data = response.json()

最后,我们可以通过response对象的headers属性来查询HTTP响应头。

例如,我们可以输出服务器返回的响应头信息:

print(response.headers)

总结

需要注意的是,get()函数在发起HTTP GET请求时,是将参数中的查询字符串参数直接附加在URL后面的。因此,在URL中应该遵循必要的URL编码规则,以便能够正确传递特殊字符和空格等字符。

此外,如果不需要为GET请求添加查询字符串参数,可以将params参数指定为None。在大多数情况下,我们使用get()函数的方式与上述示例几乎相同。但是,有时候我们需要处理更复杂的HTTP请求,这时可以使用requests库中的其他方法和参数进行自定义操作。