前言
Requests是一个Python HTTP库,在Apache License 2.0 许可证下发行。这个项目的目标是使HTTP请求更简单,更人性化。(维基百科)
下载依赖
引入依赖
发送请求
<url>:请求地址
1 2 3 4 5 6
| response = requests.get("<url>") response = requests.post("<url>") response = requests.put("<url>") response = requests.head("<url>") response = requests.delete("<url>") response = requests.options("<url>")
|
定义请求头
1 2 3
| response = requests.get(url="<url>", headers={ "key": "value" })
|
定义Cookie
1 2 3 4
| cookies = response = requests.get(url="<url>", cookies={ "key": "value" })
|
定义是否允许重定向
allow_redirects:是否允许重定向
True:缺省值,允许重定向
False:不允许重定向
1 2
| response = requests.get(url="<url>", allow_redirects=False) response.history
|
定义超时时间
<num>:超时时间,单位秒
1
| response = requests.get(url="<url>", timeout=<num>)
|
请求对象
获取请求头
1
| result = request.headers
|
响应对象
获取响应字符编码
1
| result = response.encoding
|
获取响应URL
获取响应状态码
1
| result = response.status_code
|
获取相应头
1
| result = response.headers
|
获取响应体
获取文本内容
直接解析JSON格式字符串为Python字典
1
| result = response.json()
|
获取二进制内容
字节串
1
| result = response.content
|
字节流
获取响应历史
1
| result = response.history
|
获取Cookies
1
| result = response.cookies
|
检查响应是否成功
1
| result = response.raise_for_status()
|
参数传递
Get
1 2 3
| response = requests.get(url="<url>", params={ "key": "value" })
|
POST
1 2 3
| response = requests.post(url="<url>", json={ "key": "value" })
|
文件上传
<file>:文件路径
1 2 3
| response = requests.post(url="<url>", files={ "key": open("<file>", "rb") })
|
文件下载
<url>:请求URL
<file>:文件存储路径
1 2 3
| response = requests.get("<url>") with open("<file>", "wb") as f: f.write(response.content)
|
踩坑
- 报错:
Failed to establish a new connection
解决问题
1 2 3
| requests.get("", headers={ "Connection": "close" })
|
完成
参考文献
哔哩哔哩——千锋教育网络安全学院
CSDN——郑德帅