快速上手 requests 库
Python 中,requests 是一个常用的第三方 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。
pip install requests如果读者不了解 HTTP 协议,请查看HTTP 教程,对于理解本文内容有很大帮助。本文中可请求接口由JSONPlaceholder提供。
开发实践中,大多数开发者习惯只使用 GET 和 POST 请求方式,现在 Restful API 也渐渐流行。
发起请求
先简单看一下,如何发起一个 GET 请求。
|
|
请求参数
可以 URL 带参和请求体带参。Restful API 规范中,一般 GET 和 DELETE 请求方式在 URL 中带参,其余请求方式通过请求体带参。
|
|
除了 JSON 格式参数,当然也可以传其他格式参数。
|
|
请求头
请求体通过 headers= 传递。
|
|
Cookies
在 HTTP 请求中,Cookies 是服务器发送给客户端的一小段数据,客户端会保存这些数据,并在后续请求中自动将其携带回服务器。它常用于身份验证、会话管理、用户追踪等场景。
|
|
还可以使用 Session 对象管理 Cookies。
|
|
Basic Auth
HTTP 请求中,Basic Auth(基本认证)是一种简单的身份验证机制,允许客户端在请求中直接提供用户名和密码作为身份凭证。它应该值是一个元组,包含两个元素,第一个是用户名(username),第二个是密码(password)。但安全性较低,常用于内部系统、测试环境或对安全性要求不高的场景。
|
|
响应超时
参数 time= 可以指定超时时间(默认为 None,一直等待),超时会抛出 Timeout 异常。如果 timeout 是一个数字,表示连接和读取的总超时时间。如果 timeout 是一个元组,它应该包含两个数值(支持浮点数),分别指定连接和读取的超时时间。例如,(3, 0.5)、(2.2, None)。
|
|
重定向
参数 allow_redirects= 为 True(默认值),会自动处理服务器返回的所有重定向。否则(False),不自动处理重定向,而是将重定向响应返回给用户。
|
|
设置代理
如果需要网络代理,可以通过 proxies= 参数。
|
|
SSL 认证
参数 verify= 用于验证服务端的 SSL 证书。为 True 时(默认),证书无效或过期,将抛出一个 SSLError 异常。为 False 时,不会验证 SSL 证书。
参数 cert= 用于验证客户端的 SSL 证书。它的值可以是单个文件的路径(包含密钥和证书)或者一个元组(包含两个文件路径,一个为密钥,一个为证书)。
|
|
解析响应
响应由状态行、响应头、响应体组成,解析这些数据非常简单。
|
|