当前位置: 首页 > news >正文

发送post请求、携带cookie、响应对象、高级用法

发送post请求

请求体中,两种方式:data={} ⇢ \dashrightarrow 编码格式

  1. urlencoded ⇢ \dashrightarrow key=value&key=value
  2. json={} ⇢ \dashrightarrow 编码格式是json

使用方式:
res=requests.post('url')

模拟登录

import requestsdata = {'username': '616564099@qq.com','password': 'lqz123','captcha': 'xxxx','ref': 'http://www.aa7a.cn/','act': 'act_login',
}
res = requests.post('http://www.aa7a.cn/user.php', data=data)
print(res.text)

携带cookie

  1. 请求头中
  2. 带在cookie参数中

请求头中携带

header = {'Cookie': 'cto_bundle=_DpLll9WcDY3UCUyRlBnWDZtZEp5MVFZZHVHeExtdmtwNjVVYkh6SUglMkZoVmFaSWFtc1JrZWo0aVRURzdOeUhTUHpTekslMkJ0RjRnOXhqOWhXM0piM0hXVFlVVk9MUGpNWFdCS0dveFBFSEhHVmJRV01uVWZ1bjloTU9YY2VwQWF2NWxFQWhkZnM5TERxMVlUUkt4WUo2dWR4QkZOMmclM0QlM0Q; _jzqx=1.1691985966.1691985966.1.jzqsr=aa7a%2Ecn|jzqct=/.-; ECS_ID=a9bd0486ba5b0f2f65637f64719d72e75add4995; ECS[visit_times]=8; _jzqa=1.2593057364546894000.1672632545.1691985966.1698896326.9; _jzqc=1; _jzqy=1.1672632545.1698896326.1.jzqsr=baidu.-; _jzqckmp=1; Hm_lvt_c29657ca36c6c88e02fed9a397826038=1698896327; mediav=%7B%22eid%22%3A%22179539%22%2C%22ep%22%3A%22%22%2C%22vid%22%3A%22%22%2C%22ctn%22%3A%22%22%2C%22vvid%22%3A%22%22%2C%22_mvnf%22%3A1%2C%22_mvctn%22%3A0%2C%22_mvck%22%3A1%2C%22_refnf%22%3A0%7D; __xsptplus422=422.9.1698896372.1698896372.1%234%7C%7C%7C%7C%7C%23%23%23; Qs_lvt_201322=1686282645%2C1691979017%2C1691979065%2C1698896326%2C1698896643; __xsptplusUT_422=1; _qzjc=1; ECS[username]=616564099%40qq.com; ECS[user_id]=61399; ECS[password]=4a5e6ce9d1aba9de9b31abdf303bbdc2; _qzjb=1.1698896326296.7.0.0.0; _qzjto=7.1.0; _qzja=1.1154697895.1672632545402.1691985966161.1698896326296.1698896649094.1698896661921.616564099%2540qq_com.1.0.23.8; Hm_lpvt_c29657ca36c6c88e02fed9a397826038=1698896662; _jzqb=1.18.10.1698896326.1; Qs_pv_201322=1719398001187156200%2C1811149594340033000%2C1691949923920640300%2C4523589869790951000%2C2247541305320030700'
}
res = requests.get('http://www.aa7a.cn/',headers=header)
自动点赞案例
data = {'linkId': '40480287'
}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36','Cookie': 'deviceId=web.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiIwNGZlMmMxYy00Mjc4LTRlMzMtYjM5OS0zNTI0NTNiNzQ3ZDkiLCJleHBpcmUiOiIxNjgxNDQyNDI2ODUxIn0.k41tJ-jL5Y6TO4BabrtzUv8N35eLrfqfdvBdXEmtqxE; __snaker__id=kNv5rzTfGa3xsaqh; YD00000980905869%3AWM_TID=slUolCNNTm5FRQRAEVaBfKlPbFQL7kFG; Hm_lvt_03b2668f8e8699e91d479d62bc7630f1=1698896819; gdxidpyhxdE=4hhv3p0G9z1GUt%2BbmquM7o8uxAnU21e5Xv0hEnOwniLE617vQyijd%2FRfrVM3c8u%2Bb%2BSzE%2B612mU4JXDi6SwQC6tAIHEf9RPVR%2FZQB9AH0V4gazYRMoMlmhHeYBgfjGfe%2BhbYbX3x%2BdKE2dQUo1tJuYMCZr%2B8QdQapLAChI%5CbpM%2BhkIne%3A1698897721336; YD00000980905869%3AWM_NI=817ayMhIabFSD%2BFdoaOokCH5%2FLBINb0apxw2XgvsY2zLJrWi0bgIB1eE%2FAPrdZIt4NVgofeOgPy92Y73HLGf70hYzYHH%2BKz%2FlrsYT9j4KFUbo6Vx4OY6R6o0nZ7HJYrTYm0%3D; YD00000980905869%3AWM_NIKE=9ca17ae2e6ffcda170e2e6eeccea7c97bff99ad04eb3bc8bb6c44f839a8e83d463b889f8b9c25ebc868ad5f52af0fea7c3b92afceff982fc47ac97af83c55988f58a85ee6b8db1a5a4cb3fed948eaacd6af4bfc099f63a9cb9ba94dc3aba948693d663f4bea9aac13ba79be1a2d37aa8868795b74696b9a187e845a590b7dab153f5ed88adc66ef5f0a8baf9538c98e5acf925b0aebdbad733aaec85a7d86aadea9a99b7459bea9ed7ee3cae86f9a9c953b28c978eb337e2a3; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiJjZHVfNTMyMDcwNzg0NjAiLCJleHBpcmUiOiIxNzAxNDg4ODM3Nzg0In0.3zOo3zk8OEO2kmYOX2ExY_oc6wm3eeM0y9VUyA4er-w; Hm_lpvt_03b2668f8e8699e91d479d62bc7630f1=1698896838'
}res = requests.post('https://dig.chouti.com/link/vote', data=data, headers=header)
print(res.text)

方式二:使用cookie参数

使用cookie参数,类型为字典形式

s = 'cto_bundle=_DpLll9WcDY3UCUyRlBnWDZtZEp5MVFZZHVHeExtdmtwNjVVYkh6SUglMkZoVmFaSWFtc1JrZWo0aVRURzdOeUhTUHpTekslMkJ0RjRnOXhqOWhXM0piM0hXVFlVVk9MUGpNWFdCS0dveFBFSEhHVmJRV01uVWZ1bjloTU9YY2VwQWF2NWxFQWhkZnM5TERxMVlUUkt4WUo2dWR4QkZOMmclM0QlM0Q; _jzqx=1.1691985966.1691985966.1.jzqsr=aa7a%2Ecn|jzqct=/.-; ECS_ID=a9bd0486ba5b0f2f65637f64719d72e75add4995; ECS[visit_times]=8; _jzqa=1.2593057364546894000.1672632545.1691985966.1698896326.9; _jzqc=1; _jzqy=1.1672632545.1698896326.1.jzqsr=baidu.-; _jzqckmp=1; Hm_lvt_c29657ca36c6c88e02fed9a397826038=1698896327; mediav=%7B%22eid%22%3A%22179539%22%2C%22ep%22%3A%22%22%2C%22vid%22%3A%22%22%2C%22ctn%22%3A%22%22%2C%22vvid%22%3A%22%22%2C%22_mvnf%22%3A1%2C%22_mvctn%22%3A0%2C%22_mvck%22%3A1%2C%22_refnf%22%3A0%7D; __xsptplus422=422.9.1698896372.1698896372.1%234%7C%7C%7C%7C%7C%23%23%23; Qs_lvt_201322=1686282645%2C1691979017%2C1691979065%2C1698896326%2C1698896643; __xsptplusUT_422=1; _qzjc=1; ECS[username]=616564099%40qq.com; ECS[user_id]=61399; ECS[password]=4a5e6ce9d1aba9de9b31abdf303bbdc2; _qzjb=1.1698896326296.7.0.0.0; _qzjto=7.1.0; _qzja=1.1154697895.1672632545402.1691985966161.1698896326296.1698896649094.1698896661921.616564099%2540qq_com.1.0.23.8; Hm_lpvt_c29657ca36c6c88e02fed9a397826038=1698896662; _jzqb=1.18.10.1698896326.1; Qs_pv_201322=1719398001187156200%2C1811149594340033000%2C1691949923920640300%2C4523589869790951000%2C2247541305320030700'
res = requests.get('http://www.aa7a.cn/', cookies={item[0] :item[1] for  item in s.split(':')})
print('616564099@qq.com' in res.text)
登录成功 ⇢ \dashrightarrow 响应头中有cookie

获得cookie: res.cookie

data = {'username': '616564099@qq.com','password': 'lqz123','captcha': 'xxxx','ref': 'http://www.aa7a.cn/','act': 'act_login',
}
res = requests.post('http://www.aa7a.cn/user.php', data=data)
print(res.text)
拿到登录后的cookie,再向首页发送请求
res = requests.get('http://www.aa7a.cn/', cookies=res.cookies)
print('616564099@qq.com' in res.text)

session 的使用

原来每次都需要手动携带cookie

from requests import Session
session=Session()
data = {'username': '616564099@qq.com','password': 'lqz123','captcha': 'xxxx','ref': 'http://www.aa7a.cn/','act': 'act_login',
}
res = session.post('http://www.aa7a.cn/user.php', data=data)
res = session.get('http://www.aa7a.cn/')  #  可以自动处理cookie,不需要手动携带
print('616564099@qq.com' in res.text)

响应对象

http请求 ⇢ \dashrightarrow python中 ⇢ \dashrightarrow 变成了俩对象 ⇢ \dashrightarrow request对象 response对象

  1. 后端:django

    • request ⇢ \dashrightarrow http请求被包装成了python的对象

    • 四件套 ⇢ \dashrightarrow http的响应被包装成了response

  2. 爬虫:

    • request对象 ⇢ \dashrightarrow request.get ⇢ \dashrightarrow http请求
    • response对象 ⇢ \dashrightarrow 返回的数据- ⇢ \dashrightarrow http响应包装成了response对象

后端和前端所叫的 request和response虽然不是同一个类的对象,但是他们的内容基本一致 ⇢ \dashrightarrow 本质都是http请求和响应

响应对象方法

  1. respone.text:响应体转成了字符串
  2. respone.content:响应体的二进制
  3. respone.status_code:响应状态码
  4. respone.headers:响应头
  5. respone.cookies.get_dict()
  6. respone.cookies.items():响应cookie ⇢ \dashrightarrow 转成key-value形式
  7. respone.url:请求地址
  8. respone.history:了解:访问过的地址 针对于 重定向的情况,才会有值
  9. respone.encoding:响应编码

下载一个视频

respone = requests.get('https://img3.chouti.com/CHOUTI_231102_8B10E74FBE2646748DE951D4EAB1F1E7.jpg')
# print(respone.content)# 保存到本地--》就是这张图片
with open('致命诱惑.jpg', 'wb') as f:# f.write(respone.content)# for line in respone.iter_content(1024):for line in respone.iter_content():  f.write(line)

高级用法

  1. 乱码问题
    respone.text ⇢ \dashrightarrow 从服务器获取回来是byte格式
    ⇢ \dashrightarrow 默认用utf-8转码成字符串
    respone.encoding='gbk 再打印

  2. 解析json

import requests
response=requests.get('http://httpbin.org/get')import json
res1=json.loads(response.text) #太麻烦res2=response.json() #直接获取json数据print(res1 == res2) #True
  1. 关于https报错问题
    以后访问https地址时,可以会报错,访问https需要携带证书 ⇢ \dashrightarrow 没带就会报错
    想要不携带证书 ⇢ \dashrightarrow 不报错
    不验证证书,报警告,返回200:respone=requests.get('https://www.12306.cn',verify=False) 不验证证书,报警告,返回200

    • 解决警告:
      import urllib3
      urllib3.disable_warnings()
      respone=requests.get('https://www.12306.cn',verify=False)
      print(respone.text)
      
  2. 超时设置
    如果多少时间没返回就报错

import requests
respone=requests.get('https://www.baidu.com',timeout=0.0001)
  1. 认证设置 ⇢ \dashrightarrow 不需要知道了,现在没有这种了 ⇢ \dashrightarrow 不是前端认证

  2. 异常处理

  3. 上传文件

import requests
files = {'file': open('a.jpg', 'rb')}
respone = requests.post('http://httpbin.org/post', files=files)
print(respone.status_code)
  1. 后端存储:request.FILES.get('file')

相关文章:

发送post请求、携带cookie、响应对象、高级用法

发送post请求 请求体中,两种方式:data{} ⇢ \dashrightarrow ⇢ 编码格式 urlencoded ⇢ \dashrightarrow ⇢ keyvalue&keyvaluejson{} ⇢ \dashrightarrow ⇢ 编码格式是json 使用方式: resrequests.post(url) 模拟登录 import …...

JMeter接口测试性能测试

目前最新版本发展到5.0版本,需要Java7以上版本环境,下载解压目录后,进入\apache-jmeter-5.0\bin\,双击ApacheJMeter.jar文件启动JMemter。 1、创建测试任务 添加线程组,右击测试计划,在快捷菜单单击添加-…...

MongoDB——MongoDB删除系统自带的local数据库

一、MongoDB删除系统自带的local数据库 1.1、linux环境进入mongo客户端 输入 mongo 命令,进入命令行客户端 进入admin库,并登录,查看所有数据库 #进入admin库 use admin #并登录admin db.auth("username","password")…...

【LeetCode刷题-链表】--203.移除链表元素

203.移除链表元素 方法:定义一个节点指向头节点head,避免头结点单独操作 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* …...

Microsoft Dynamics 365 CE 扩展定制 - 3. SDK企业功能

在本章中,我们将介绍以下内容: 服务器端并发控制客户端并发控制在事务中执行请求批处理请求暂存数据导入创建早期绑定的实体类扩展CrmSvcUtil用Filter扩展CrmSvcUtil以生成选项集枚举使用CRM配置迁移工具跨实例迁移配置简介 回顾Dynamics CRM的历史,该产品经过多年的发展以…...

人工智能基础_机器学习016_BGD批量梯度下降求解多元一次方程_使用SGD随机梯度下降计算一元一次方程---人工智能工作笔记0056

然后上面我们用BGD计算了一元一次方程,那么现在我们使用BGD来进行计算多元一次方程 对多元一次方程进行批量梯度下降. import numpy as np X = np.random.rand(100,8) 首先因为是8元一次方程,我们要生成100行8列的X的数据对应x1到x8 w = np.random.randint(1,10,size = (8…...

硬件测试(二):波形质量

一、信号质量测试 信号在传输的过程中,一般不是标准的矩形波信号,信号质量测试即通过示波器测试单板硬件的数字信号和模拟信号的各项指标,包括电源、时钟、复位、CPU小系统、外部接口(USB、网口、串口)、逻辑芯片(CPLD…...

PostgreSQL 数据库日志相关参数

PostgreSQL数据库的配置主要是通过修改数据目录下的 postgresql.conf和pg_hba.conf文件来实现的。 如果想从其他机器上登录该数据 库,需要把监听地址改成实际网络的地址,一种简单的方法是把地址 改成“*”,表示在本地的所有地址上监听&#…...

delete请求,express获取req.body失败

使用 Express 框架处理 DELETE 请求时,通常情况下是不会有请求体的。DELETE 请求通常用于删除资源,而不是发送数据。因此, Express 默认情况下不会解析 DELETE 请求的请求体。 如果需要在 DELETE 请求中发送数据,一种常见的做法是…...

2023年江西省职业院校技能竞赛“网络安全”赛项样题

二、竞赛注意事项 1.竞赛期间禁止携带和使用移动存储设备、计算器、通信工具及 参考资料。 2.请根据大赛所提供的竞赛环境,检查所列的硬件设备、软件清 单、材料清单是否齐全,计算机设备是否能正常使用。 3.在进行任何操作之前,请阅读每个部分…...

groovy下载与安装

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可…...

Hugging Face LLM部署大语言模型到亚马逊云科技Amazon SageMaker推理示例

本篇文章主要介绍如何使用新的Hugging Face LLM推理容器将开源LLMs,比如BLOOM大型语言模型部署到亚马逊云科技Amazon SageMaker进行推理的示例。我们将部署12B Open Assistant Model,这是一款由开放助手计划训练的开源Chat LLM。 这个示例包括&#xff1…...

内向基环树

例题1 例题2...

k8s replicaSet,deployment 学习笔记

文章目录 replicaSet 和 deployment 两者的关系。创建滚动更新回滚 replicaSet 和 deployment 两者的关系。 在 Kubernetes 中,ReplicaSet 和 Deployment 都是用来确保某种 Pod 的副本数目。但是,ReplicaSet 和 Deployment 是有差别的,二者的…...

Zabbix监控原理 安装

一、监控介绍 1、监控目的 监控是需要站在公司的业务角度去考虑,而不是针对某个监控技术的使用 对系统不间断时实监控 实际上是对系统不间断的时实监控 实时反馈系统当前状态 我们监控某个硬件、或者系统,都是需要能时实看到当前系统的状态&#x…...

我和“云栖大会”的双向奔赴

目录 引言初次参加云栖大会云栖大会带来的技术风向标本届大会最强技术有哪些?云栖大会对我职业生涯的影响个人对未来云栖大会的期待和建议结语 引言 想必大家对“云栖大会”并不陌生,“云栖大会”作为国内最具规模和影响力的云计算盛会,每年…...

HarmonyOS UI 开发

引言 HarmonyOS 提供了强大的 UI 开发工具和组件,使开发者能够创建吸引人的用户界面。本章将详细介绍在 HarmonyOS 中应用 JS、CSS、HTML,HarmonyOS 的 UI 组件以及如何自定义 UI 组件。 目录 JS、CSS、HTML 在 HarmonyOS 中的应用HarmonyOS 的 UI 组…...

中国移动发布《新型智慧城市白皮书》(2023版)

加gzh“大数据食铁兽”,回“20231101”,获取材料完整版 导读 通过本系列白皮书,我们系统的阐述了中国移动对中国智慧城市发展趋势,并对中国移动服务智慧城市建设六大核心能力进行了介绍,详细说明了中国移动智慧城市…...

windows和docker环境下springboot整合gdal3.x

链接: gdal官网地址 gdal gdal的一个用c语言编写的库,用于处理地理信息相关的数据包括转换,识别数据,格式化数据以及解析 同时提供第三方语言的SDK包括python,java上述需要编译后使用 java是需要使用jni接口调用实现方法在wind…...

大数据与健康:技术助力医疗卫生事业腾飞

大数据与健康:技术助力医疗卫生事业腾飞 随着科技的飞速发展,大数据技术已经渗透到我们生活的方方面面,包括医疗卫生领域。本文将对大数据在健康医疗领域的应用进行分析,并通过数据图表展示其发展趋势和前景。 一、背景介绍 近…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

idea大量爆红问题解决

问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...