当前位置:优草派 > 问答 > Python问答

python中requests模块的使用方法

标签: Python  Python开发  Python  作者: ajunqqw123

回答:

在Python中,requests是一个非常流行的第三方HTTP库,可以用于发送HTTP请求,从而获取网页、API等数据,同时还支持各种HTTP协议和身份验证。本文将从多个角度分析requests模块的使用方法,以便读者更好地掌握它的使用。

基础使用

首先,我们需要安装requests模块。如果您使用的是Python 3.x版本,可以使用以下命令来安装:

```

pip3 install requests

```

如果您使用的是Python 2.x版本,可以使用以下命令来安装:

```

pip install requests

```

安装完成后,我们就可以开始使用requests模块了。以下是一个简单的示例:

```

import requests

response = requests.get('https://www.baidu.com')

print(response.text)

```

以上代码中,我们首先导入了requests模块,然后使用get方法发送了一个GET请求,请求的URL为https://www.baidu.com。最后,我们打印了响应内容。需要注意的是,response.text返回的是Unicode格式的响应内容,如果需要获取原始的二进制数据,可以使用response.content。

请求参数

除了URL之外,我们还可以在请求中添加各种参数。以下是一些常用的参数:

- params:添加GET请求的参数,可以是一个字典或字符串;

- data:添加POST请求的参数,可以是一个字典、元组列表或字符串;

- json:添加POST请求的JSON参数,可以是一个字典;

- headers:添加请求头;

- cookies:添加cookies;

- auth:添加HTTP身份验证。

以下是一个示例:

```

import requests

params = {'key1': 'value1', 'key2': 'value2'}

response = requests.get('https://httpbin.org/get', params=params)

print(response.url)

data = {'key1': 'value1', 'key2': 'value2'}

response = requests.post('https://httpbin.org/post', data=data)

print(response.text)

json = {'key1': 'value1', 'key2': 'value2'}

response = requests.post('https://httpbin.org/post', json=json)

print(response.text)

headers = {'user-agent': 'Mozilla/5.0'}

response = requests.get('https://httpbin.org/get', headers=headers)

print(response.text)

cookies = {'key1': 'value1', 'key2': 'value2'}

response = requests.get('https://httpbin.org/cookies', cookies=cookies)

print(response.text)

auth = ('username', 'password')

response = requests.get('https://httpbin.org/basic-auth/username/password', auth=auth)

print(response.text)

```

以上代码中,我们分别演示了添加GET请求参数、POST请求参数、POST JSON参数、请求头、cookies和HTTP身份验证的方法。

响应内容

当我们发送请求后,requests模块会返回一个响应对象,其中包含了响应的各种信息,例如状态码、响应头和响应内容等。以下是一些常用的响应属性和方法:

- status_code:响应状态码;

- headers:响应头,以字典形式返回;

- text:响应内容的Unicode形式;

- content:响应内容的二进制形式;

- json():将响应内容解析为JSON格式。

以下是一个示例:

```

import requests

response = requests.get('https://httpbin.org/get')

print(response.status_code)

print(response.headers)

print(response.text)

print(response.content)

print(response.json())

```

以上代码中,我们演示了获取响应状态码、响应头、响应内容和解析JSON格式内容的方法。

异常处理

在发送请求时,有可能会出现各种异常情况,例如网络连接错误、超时等。requests模块提供了一些异常类,可以用于捕获这些异常。以下是一些常见的异常类:

- requests.exceptions.RequestException:所有异常的基类;

- requests.exceptions.Timeout:请求超时;

- requests.exceptions.ConnectionError:网络连接错误。

以下是一个示例:

```

import requests

from requests.exceptions import RequestException, Timeout, ConnectionError

try:

response = requests.get('https://httpbin.org/get', timeout=0.1)

print(response.text)

except Timeout:

print('请求超时')

except ConnectionError:

print('网络连接错误')

except RequestException as e:

print('其他异常:', e)

```

以上代码中,我们使用了try-except语句捕获了请求超时和网络连接错误的异常,同时还捕获了其他异常并打印了异常信息。

综上所述,requests模块是一个非常实用的第三方HTTP库,可以用于发送HTTP请求,从而获取网页、API等数据。本文从基础使用、请求参数、响应内容和异常处理等多个角度进行了分析和演示,希望对读者有所帮助。

TOP 10
  • 周排行
  • 月排行