Requests库是Python中一个非常流行的HTTP请求库,它可以方便地发送HTTP请求并处理响应。在本文中,我们将介绍Requests库的基本用法,包括发送GET和POST请求、设置请求头、处理响应等。
一、安装Requests库
在使用Requests库之前,我们需要先安装它。可以使用pip命令来安装:
pip install requests
二、发送GET请求
发送GET请求是最常见的HTTP请求之一。使用Requests库发送GET请求非常简单,只需要调用get()方法即可。例如,我们要获取百度首页的HTML代码,可以使用以下代码:
import requestsresponse = requests.get('https://www.baidu.com/')
print(response.text)
上述代码中,我们首先导入了Requests库,然后调用get()方法发送了一个GET请求,请求的URL为’https://www.baidu.com/'。get()方法返回一个Response对象,我们可以通过调用它的text属性获取响应的HTML代码。
三、发送带参数的GET请求
有时候我们需要发送带参数的GET请求,例如查询某个关键字的搜索结果。Requests库提供了params参数来设置请求参数。例如,我们要查询关键字为’Python’的搜索结果,可以使用以下代码:
import requestsparams = {'wd': 'Python'}
response = requests.get('https://www.baidu.com/s', params=params)
print(response.url)
print(response.text)
上述代码中,我们通过params参数设置了请求参数,然后发送了一个GET请求到’https://www.baidu.com/s’,最后打印了响应的URL和HTML代码。
四、发送POST请求
发送POST请求通常用于提交表单数据或上传文件等操作。使用Requests库发送POST请求也非常简单,只需要调用post()方法即可。例如,我们要提交一个简单的表单,可以使用以下代码:
import requestsdata = {'username': 'admin', 'password': '123456'}
response = requests.post('http://httpbin.org/post', data=data)
print(response.text)
上述代码中,我们通过data参数设置了POST请求的表单数据,然后发送了一个POST请求到’http://httpbin.org/post’,最后打印了响应的JSON数据。
五、发送带文件的POST请求
如果要上传文件,可以使用Files参数来设置文件。例如,我们要上传一个名为’example.txt’的文件,可以使用以下代码:
import requestsfiles = {'file': open('example.txt', 'rb')}
response = requests.post('http://httpbin.org/post', files=files)
print(response.text)
上述代码中,我们通过Files参数设置了要上传的文件,然后发送了一个POST请求到’http://httpbin.org/post’,最后打印了响应的JSON数据。
六、设置请求头
有时候我们需要设置请求头,例如设置User-Agent来模拟浏览器访问。Requests库提供了headers参数来设置请求头。例如,我们要设置User-Agent为’Mozilla/5.0’,可以使用以下代码:
import requestsheaders = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://www.baidu.com/', headers=headers)
print(response.text)
上述代码中,我们通过headers参数设置了请求头,然后发送了一个GET请求到’https://www.baidu.com/',最后打印了响应的HTML代码。
七、处理响应
在发送HTTP请求后,我们需要处理响应。Requests库提供了很多方法来处理响应,例如获取响应的状态码、获取响应的头部信息、获取响应的JSON数据等。以下是一些常用的方法:
- 获取响应的状态码
response.status_code
- 获取响应的头部信息
response.headers
- 获取响应的JSON数据
response.json()
- 获取响应的HTML代码
response.text
- 获取响应的二进制数据
response.content
八、异常处理
在发送HTTP请求时,可能会出现各种异常,例如网络连接超时、请求URL不存在等。Requests库提供了一些异常类来处理这些异常。以下是一些常用的异常类:
-
requests.exceptions.RequestException:所有Requests库异常的基类。
-
requests.exceptions.Timeout:请求超时异常。
-
requests.exceptions.ConnectionError:网络连接异常。
-
requests.exceptions.HTTPError:HTTP异常。
以下是一个简单的异常处理示例:
import requeststry:response = requests.ge/', timeout=1)response.raise_for_status()
except requests.exceptions.Timeout:print('请求超时')
except requests.exceptions.ConnectionError:print('网络连接异常')
except requests.exceptions.HTTPError:print('HTTP异常')
else:print(response.text)
上述代码中,我们使用try-ex