IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> (三) 获取响应(正文/状态码/时间/cookie/响应头) -> 正文阅读

[Python知识库](三) 获取响应(正文/状态码/时间/cookie/响应头)

一. 获取 响应正文体

#? ~~? 正文体是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对象,其存储了服务器响应的内容

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:30:34  更:2022-03-24 00:32:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:56:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码