Requests库中的get()函数:向指定URL发送HTTP请求并返回响应对象。
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库中的其他方法和参数进行自定义操作。
