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

Python函数库requests的基本用法:发送HTTP请求并获取响应数据

发布时间:2023-06-14 22:33:07

Python中有很多用于发送HTTP请求的函数库,其中比较流行和强大的是requests,它可以方便地发送HTTP请求并获取响应数据,支持HTTP/1.1和HTTP/2协议,使用起来非常简单。下面我就来介绍一下requests的基本用法。

## 安装requests库

如果你使用的是Python3,那么requests库应该已经安装好了,可以直接开始使用。如果你使用的是Python2,需要先安装requests库,可以使用pip install requests命令来安装。

## 发送HTTP请求

使用requests发送HTTP请求非常简单,只需要选择合适的HTTP方法(GET、POST、PUT等),把请求的URL和参数传递进去即可,requests会自动处理请求头、请求体等内容。以下是一个使用requests发送GET请求的例子:

import requests

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

以上代码中,先使用requests库的get方法发送一个GET请求,然后把响应结果存到response变量里,最后打印出响应数据。

如果需要传递参数,可以在URL后面添加查询字符串,也可以使用params参数传递:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('http://www.example.com', params=payload)
print(response.url)
print(response.text)

以上代码中,使用了params参数传递了两个查询参数,requests会自动把参数转化为查询字符串并添加到URL后面,最后打印出完整的URL和响应数据。

如果需要发送POST请求,需要先创建一个字典类型的参数,然后使用requests的post方法发送请求,以下是一个POST请求的例子:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://www.example.com', data=payload)
print(response.text)

以上代码中,首先创建了一个字典类型的参数,然后使用post方法发送POST请求,把参数传递进去,最后打印出响应数据。

## 处理响应数据

requests库会自动解析HTTP响应,提供一些有用的响应数据,例如响应状态码、响应头、响应体等。以下是一个处理响应数据的例子:

import requests

response = requests.get('http://www.example.com')
print(response.status_code)
print(response.headers)
print(response.text)

以上代码中,使用了以下三个属性:

- status_code:响应的状态码,例如200表示成功,404表示未找到,500表示服务器错误等。注意只有状态码是2xx才表示请求成功。

- headers:响应头,是一个字典类型的对象,包含了所有响应头信息。

- text:响应体,是服务器返回的文本格式的内容。如果服务器返回的是二进制格式的内容,可以使用content属性。

## 处理异常

requests库会自动处理HTTP响应的错误,例如连接超时、DNS错误等,但有时还是会出现异常,需要特殊处理。以下是一个处理异常的例子:

import requests

try:
    response = requests.get('http://www.example.com')
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print(e)

以上代码中,使用了try-except语句,把请求代码放在try块里,如果出现异常会跳转到except块处理,并把异常信息打印出来。raise_for_status方法是一个检查状态码的方法,如果返回的状态码不是2xx,则会抛出一个HTTPError异常。

## 总结

requests库是一个非常方便和强大的HTTP请求库,可以用来发送各种类型的HTTP请求和处理HTTP响应。它支持请求的各种参数、表单数据、文件上传等,并提供了多种方法来解析返回的响应数据。在编写Python程序时,requests是一个优秀的HTTP客户端函数库,值得推荐和使用。