前言
Requests学习笔记
下载依赖
请求对象的属性
获取请求头
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.raw.read
|
检查响应是否成功
1
| result = response.raise_for_status()
|
发送请求
- 支持的请求方法
- GET:获取资源
- POST:传输实体主体
- PUT:传输文件
- HEAD:获取响应报文首部
- DELETE:删除文件
- OPTIONS:查询支持的方法
- TRACE:追踪路径
- CONNECT:要求用隧道协议连接代理
- LINK:建立和资源之间的连接
- UNLINK:断开连接关系
<url>:请求地址
1 2 3 4 5 6 7 8
| import requests
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 4
| import requests
headers = {"User-Agent":""} response = requests.get(url="<url>", headers=headers)
|
设置超时时间
<num>:超时时间,单位秒
1 2 3 4 5 6
| import requests
try: response = requests.get(url="<url>", timeout=<num>) except Exception as e: print(e)
|
传递参数
Get传递参数
1 2 3 4
| import requests
data = {"key":"value"} response = requests.get(url="<url>", params=data)
|
POST传递参数
1 2 3 4
| import requests
data = {"key":"value"} response = requests.post(url="<url>", json=data)
|
上传文件
<file>:文件路径
1 2 3 4
| import requests
files = {"key":open("<file>", "rb")} response = requests.post(url="<url>", files=files)
|
不允许自动重定向
- 默认为允许重定向
- 通过
history属性可以查看历史响应
1 2 3 4 5 6 7 8
| import requests
response = requests.post(url="<url>")
response.history
response = requests.post(url="<url>", allow_redirects=False) response.history
|
设置Cookie信息
1 2 3 4
| import requests
cookies = {"key":"value"} response = requests.get(url="<url>", cookies=cookies)
|
将二进制响应写入文件
<url>:请求URL
<file>:文件存储路径
1 2 3
| response = requests.get("<url>").content with open("<file>", "wb") as f: f.write(response)
|
踩坑
- 报错:
Failed to establish a new connection
解决问题
1 2 3
| requests.get("", headers={ "Connection": "close" })
|
完成
参考文献
哔哩哔哩——千锋教育网络安全学院
CSDN——郑德帅