Python的requests模块是一种方便的HTTP库,用于发送HTTP请求和处理响应。它提供了简洁而直观的API,可以轻松地发送GET、POST等各种请求。使用requests模块可以轻松地发送带有headers、cookies、参数等的请求,并且能够处理重定向和认证。此外,requests模块还支持会话管理和文件上传。它在处理HTTP请求时非常灵活和强大,是进行网络爬虫、网页测试以及API开发的绝佳工具。
Python Requests 模块简介
Python 是一种简单而强大的编程语言,广泛应用于网络爬虫、Web 开发和数据分析等领域。在网络请求方面,Python 内置的 urllib 模块提供了基本的功能,但相对较复杂。而 Requests 模块则提供了简洁而且友好的 API,是 Python 中最受欢迎的 HTTP 请求库之一。
安装 Requests 模块
要使用 Requests 模块,首先需要安装它。在命令行中使用 pip 工具可以轻松安装 Requests 模块:
pip install requests
安装完成后,你就可以在 Python 中引入 Requests 模块并开始使用它。
发送简单的 GET 请求
使用 Requests 模块发送简单的 GET 请求非常简单。只需要调用 requests.get() 方法并传入目标 URL 即可:
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # 打印响应状态码
print(response.text) # 打印响应内容
以上代码中,我们向 GitHub 公开 API 发送了一个 GET 请求,并访问了它的响应状态码和内容。这就是使用 Requests 模块发送简单 GET 请求的基本方法。
发送带参数的 GET 请求
有时候,我们需要在 GET 请求中传递一些参数。Requests 模块也提供了非常方便的方式来处理这种情况:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://httpbin.org/get', params=payload)
print(response.url) # 打印请求的 URL
在这个例子中,我们使用了 params 参数来传递请求的参数,Requests 模块会自动将它们添加到 URL 中。打印出的 URL 就包含了我们传递的参数。
发送 POST 请求
除了 GET 请求,Requests 模块同样支持发送 POST 请求。发送 POST 请求和发送 GET 请求的方式类似,只需要调用 requests.post() 方法并传入目标 URL 和需要发送的数据:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.text)
在这个例子中,我们向 httpbin.org 这个测试网站发送了一个 POST 请求,并传递了一些数据。httpbin.org 会原封不动地返回我们发送的数据。
处理响应
当我们发送请求后,服务器会返回一个响应。Requests 模块提供了很多属性和方法来处理这些响应,例如:
- response.status_code – 响应的状态码
- response.headers – 响应的头部信息
- response.text – 响应的内容(文本形式)
- response.json() – 响应的内容(JSON 形式)
- response.content – 响应的内容(二进制形式)
以及其他一些更高级的功能,例如处理 cookies、设置超时时间等。
总结
Requests 模块是 Python 中发送 HTTP 请求的利器,它提供了简洁而且强大的 API,让我们可以轻松地完成各种网络请求任务。无论是简单的 GET 请求、带参数的请求,还是 POST 请求,Requests 模块都提供了相应的方法来处理。它的易用性和功能性使得它成为 Python 程序员们不可或缺的工具之一。