一. 获取 响应正文体
#? ~~? 正文体是json or xml? ? ?---res.text
res = requests.post(url='http://https://passport.csdn.net/login',
headers={"Content-Type": "application/x-www-form-urlencoded"},
data={"username": "admin", "password": "478"})
print(res.text)
注:Requests 编码格式默认为项目的编码格式,如乱码,需用response.encoding = 'utf-8' 指定编码格式,之后再调用response.text,显示的编码格式就是设置后的
#? ~~? ?响应正文体是二进制文件? ? ? ?---res.content 获取原数据/原始文件,用于下载接口;
思路:1.先访问文件地址,获得原始数据; ? ? ? ? ? ?2.二次转存(打开新文件,把内容写入,保存)
eg:下载接口,将导出的文件保存在指定地方
res = requests.get(url='https:/百度图片的URL')
with open('D:/1.png', 'wb')as file:
for d in res.iter_content(128):
file.write(d)
# 先访问图片网址,拿到图片所有的二进制数据流,
# 打开D盘D:test.png,打开模式是写入二进制,从响应中每128个字节循环取响应正文体的数据流,写入
# 优点;可以减少机器压力,分片段写入
file.write(res.content) # 直接写入,适用图片较小
eg2.: 先登录,后下载导出的文件
session = requests.session()
session.post(url='http://CSDN登录地址',
headers={"Content-Type": "application/x-www-form-urlencoded"},
data={"username": "admin", "password": "789"})
res = session.get(url='下载按钮')
with open('D:/22.xlsx', 'wb')as file:
file.write(res.content)
二. 获取 响应状态码? ---res.status_code 需返回为int型
res = requests.get(url='https://gimg2.baidu.com/image_search.....')
print(int(res.status_code))
三. 获取 响应时间
print(round(res.elapsed.total_seconds()*1000)) 取毫秒
res = requests.get(url='https://gimg2.baidu.com/image_search...')
print(res.elapsed)
# 结果为日期时分秒格式 eg:0:00:00.4567
print(res.elapsed.seconds)
# 结果为四舍五入后的秒数,eg: 0 ;大部分显示为0,不合理
print(res.elapsed.total_seconds())
# 结果为 秒数 eg: 0.4567
print(res.elapsed.total_seconds()*1000)
# 结果为毫秒 eg: 456.7
print(round(res.elapsed.total_seconds()*1000))
# 将毫秒四舍五入 eg: 457
四.获取 Cookie
#? ~~? 用 requests.utils.dict_from_cookiejar() 把返回的cookies转换成字典查看
res1 = requests.post(url='http://123.56.99.53:9001/api/login/',
headers={"Content-Type": "application/x-www-form-urlencoded"},
data={"username": "admin","password": "liulaoshi123"},
allow_redirects=False)
print(requests.utils.dict_from_cookiejar(res1.cookies))
or
print(dict_from_cookiejar(res.cookies))
注意:1.url必须是F12下的url
2.参数必须正确
3.是否发生了重定向
4. print(requests.utils.dict_from_cookiejar(res1.cookies)) (转成字典查看cookie并打印)
注:方法?way1.需安装并导入 utils 包;pip install python-utils/from requests import utils,才可使用?(requests.utils.dict_from_cookiejar(res1.cookies) way2.需导入字典转CookieJar或CookieJar转字典的包即 from requests.utils import dict_from_cookiejar, cookiejar_from_dict,再使用 print(dict_from_cookiejar(res.cookies)) 打印cookies
#? ~~? 遍历cookies的键值,拼接成cookie格式
五. 获取响应头
res = requests.get(url='https://gimg2.baidu.com/image_search/src=....8')
print(res.headers)
requests的get和post方法返回值都是Response对象,其存储了服务器响应的内容
|