在 Python 中,requests 是一个常用的 HTTP 请求库,它可以方便地向网站发送 HTTP 请求,并获取响应结果。使用 requests 库,你可以轻松地实现网页抓取、接口测试、自动化脚本等功能。本文将介绍如何快速学习 requests 框架。
一、安装 requests 库
在使用 requests 库之前,你需要确保已经安装了它。你可以使用 pip 命令来安装 requests 库:
pip install requests
二、发送 GET 请求
GET 请求是最常见的 HTTP 请求方法,它用于从服务器获取数据。使用 requests 库发送 GET 请求非常简单,只需要使用requests.get()
方法即可。以下是一个示例代码:
import requests
response = requests.get('https://www.example.com')
print(response.status_code)
print(response.text)
在这个示例中,我们使用requests.get()
方法向https://www.example.com
发送了一个 GET 请求,并将响应结果存储在response
变量中。然后,我们打印了响应的状态码和文本内容。
三、发送 POST 请求
POST 请求用于向服务器提交数据,例如提交表单数据或上传文件。使用 requests 库发送 POST 请求需要传递一个数据字典作为参数。以下是一个示例代码:
import requests
data = {'username': 'admin', 'password': '1234567890'}
response = requests.post('https://www.example.com/login', data=data)
print(response.status_code)
print(response.text)
在这个示例中,我们向https://www.example.com/login
发送了一个 POST 请求,传递了一个包含用户名和密码的字典作为参数。
四、发送其他类型的请求
除了 GET 和 POST 请求之外,requests 库还支持发送其他类型的请求,例如 PUT、DELETE、PATCH 等。你可以使用requests.put()
、requests.delete()
、requests.patch()
等方法来发送这些请求。
五、设置请求头
在发送 HTTP 请求时,你可以设置请求头来传递额外的信息。例如,你可以设置 User-Agent 头来标识你的客户端。以下是一个示例代码:
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://www.example.com', headers=headers)
print(response.status_code)
print(response.text)
在这个示例中,我们设置了 User-Agent 头为’Mozilla/5.0’,然后发送了一个 GET 请求。
六、处理响应
在收到服务器的响应后,你可以使用response.status_code
属性获取响应的状态码,使用response.text
属性获取响应的文本内容,使用response.headers
属性获取响应的头部信息。以下是一个示例代码:
import requests
response = requests.get('https://www.example.com')
if response.status_code == 200:
print('请求成功!')
print('响应头部信息:')
print(response.headers)
print('响应文本内容:')
print(response.text)
else:
print('请求失败!')
print('状态码:', response.status_code)
print('响应头部信息:')
print(response.headers)
print('响应文本内容:')
print(response.text)
在这个示例中,我们首先使用requests.get()
方法发送了一个 GET 请求,然后检查了响应的状态码。如果状态码为 200,表示请求成功,我们将打印响应的头部信息和文本内容。如果状态码不是 200,表示请求失败,我们将打印状态码和响应的头部信息和文本内容。
七、使用代理
有时候,我们需要使用代理服务器来发送 HTTP 请求。requests 库提供了proxies
参数,用于指定代理服务器的地址和端口。以下是一个示例代码:
import requests
proxies = {
'http': 'http://127.0.0.1:8080',
'https': 'https://127.0.0.1:8080'
}
response = requests.get('https://www.example.com', proxies=proxies)
print(response.status_code)
print(response.text)
在这个示例中,我们设置了 HTTP 和 HTTPS 协议的代理服务器地址为’http://127.0.0.1:8080’,然后发送了一个 GET 请求。
八、使用 Session 对象
如果你需要发送多个请求,可以使用 Session 对象来管理请求。Session 对象可以自动处理 HTTP 连接的建立和关闭,提高性能和效率。以下是一个示例代码:
import requests
session = requests.Session()
response1 = session.get('https://www.example.com')
response2 = session.get('https://www.example2.com')
print(response1.status_code)
print(response1.text)
print(response2.status_code)
print(response2.text)
在这个示例中,我们使用 Session 对象发送了两个 GET 请求,并打印了响应的状态码和文本内容。
九、处理 JSON 数据
如果服务器的响应是 JSON 格式的,你可以使用response.json()
方法将响应内容解析为 Python 对象。以下是一个示例代码:
import requests
response = requests.get('https://www.example.com')
data = response.json()
print(data)
在这个示例中,我们使用response.json()
方法将响应内容解析为 Python 对象,并将其存储在data
变量中。
十、处理异常情况
在使用 requests 库发送 HTTP 请求时,可能会遇到一些异常情况,例如网络连接失败、服务器响应错误等。你可以使用response.raise_for_status()
方法来检查响应的状态码,如果状态码不是 200,表示请求失败,将抛出 HTTPError 异常。以下是一个示例代码:
import requests
response = requests.get('https://www.example.com')
response.raise_for_status()
在这个示例中,我们使用response.raise_for_status()
方法来检查响应的状态码,如果状态码不是 200,表示请求失败,将抛出 HTTPError 异常。
十一、总结
通过以上内容,我们学习了 requests 框架的基础知识,包括安装、发送 GET 和 POST 请求、设置请求头、处理响应、使用代理、使用 Session 对象、处理 JSON 数据、处理异常情况等。希望这些内容能够帮助你快速学习 requests 框架,如果你还有其他问题,请随时提问。