案例: https://www.capesandbox.com/ 模拟登录获取cookie。

Post请求中有 login、password、以及csrfmiddlewaretoken

login和password是明文的账号密码。

csrfmiddlewaretoken 一般是为了解决csrf跨域攻击的随机值,保存在用户的页面上,每次请求都带着这个值过来完成校验。

所以完成登录需要先获取csrfmiddlewaretoken。

那么在控制台搜索一番后,并未找到本地的生成方法,说明该值是由服务端返回的。

重新观察接口,在cookies中发现了问题。


原来在首次get请求时,服务端在response的cookies中返回一个csrftoken,该值和后续使用的csrfmiddlewaretoken相同。

另外需要注意的是,post提交时的参数,cookie中也是csrftoken,referer也不能少,是访问来源的象征。

所以要进行的请求逻辑是: 先请求页面获取response的token,然后根据token构造新的headers和form表单,完成模拟登录。


代码如下:

# -*- coding: utf-8 -*-
# @Author  : lximport requests
from requests.utils import dict_from_cookiejardef get_ck():session = requests.session()url = 'https://www.capesandbox.com/accounts/login/'headers = {'accept-language': 'zh-CN,zh;q=0.9','cache-control': 'max-age=0','content-type': 'application/x-www-form-urlencoded','origin': 'https://www.capesandbox.com','referer': 'https://www.capesandbox.com/accounts/login/','sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"','sec-ch-ua-mobile': '?0','sec-fetch-dest': 'document','sec-fetch-mode': 'navigate','sec-fetch-site': 'same-origin','sec-fetch-user': '?1','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',}csrftoken = dict_from_cookiejar(session.get(url=url,headers=headers).cookies)['csrftoken']data = {'login': '账号', 'password': '密码','csrfmiddlewaretoken': csrftoken}headers.update({'cookie':'csrftoken='+csrftoken})headers.update({'referer':'https://www.capesandbox.com/accounts/login/'})rsp = session.post(url=url,headers=headers,data=data,allow_redirects=False)print(rsp.headers.get('set-cookie'))print(session.get('https://www.capesandbox.com/', headers=headers).text)if __name__ == '__main__':get_ck()

capesandbox模拟登录案例相关推荐

  1. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  2. 第26讲:模拟登录爬取实战案例

    在上一课时我们了解了网站登录验证和模拟登录的基本原理.网站登录验证主要有两种实现,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证,那么本课时我们就通过两个 ...

  3. python爬虫(四)cookie模拟登录和反反爬案例

    处理不被信任证书的网站 SSL证书:数字证书的一种,配置在服务器上面的,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书. SSL证书的特点:遵循了SSL协议,由收信 ...

  4. Python实战案例,requests模块,Python实现模拟登录淘宝网

    前言 利用利用Python模拟登录淘宝网.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re模块 os模块 requests模块: 以及一些Python自带 ...

  5. 爬虫之JS解析,Python模拟JS代码运行。(附带模拟人人网登录案例)

    六.JS解析 1.定位js文件 1.通过initiator定位到js文件 2.通过search搜索关键字定位到js文件 3.通过元素绑定的事件监听函数找到js文件,Event Listeners 注: ...

  6. 手把手教你用Python模拟登录淘宝

    作者 | 猪哥66 来源 | 裸睡的猪(ID:IT--Pig) 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模拟 ...

  7. 12-基于selenium实现12306模拟登录,及京东登录滑动缺口验证模拟登录

    流程分析: 使用selenium打开登录页面 对当前selenium打开的这张页面进行截图 对当前图片的局部区域(验证码图片区域)进行截图 这样验证码图片和模拟登录进行所显示的图片一一对应(如果我们对 ...

  8. java web 登录界面案例_【JavaWeb】74:写一个登录案例

    今天是刘小爱自学Java的第74天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: Java又常被称之为后台开发. 什么叫后台呢?除了后台还有什么前台.前端后端-- 这些概念一大堆,还容易弄混. ...

  9. 爬虫模拟登陆手机验证码_爬虫入门到精通-headers的详细讲解(模拟登录知乎)...

    本文章属于爬虫入门到精通系统教程第七讲 直接开始案例吧. 本次我们实现如何模拟登陆知乎. 1.抓包 1. 首先打开知乎登录页 知乎 - 与世界分享你的知识.经验和见解 注意打开开发者工具后点击&quo ...

最新文章

  1. java的lr词法编译器_Sample语言编译器(词法分析、正规式、LL、LR、 算符优先)...
  2. 【Java类加载机制】深入加载器
  3. use regular expression instead of ABAP function module to parse attachment
  4. jquery 特效专辑
  5. MLflow机器学习工作流框架更新(2019.3)
  6. Android数据存储之SQLite数据库存储
  7. SharpDevelop--一款很不错的.NET开发工具
  8. Aizu0189 Convenient Location【Floyd算法】
  9. 使用Exchange 2007搭建多域名邮件系统
  10. 软件工程---gjb438b 质量规范体系
  11. 佳能Canon imageCLASS MF725Cdn 一体机驱动
  12. 配色三部曲-你真懂这些色彩术语吗?
  13. roc曲线spss怎么做_如何用SPSS做ROC曲线分析?看这1篇就够了!
  14. flask----后续
  15. p2p技术分类与发展方向
  16. python语句和语法介绍
  17. DNF中伤害类型综合计算方式以及相关Excel文档
  18. 放大器(PA+LAN)在射频上的应用
  19. vscode自定义高亮霓虹灯效果主题
  20. 科学家研制出世界上第一个用木头制成的晶体管

热门文章

  1. 第一课 わたしは 田中(たなか)です
  2. 3.Libgdx扩展学习之Box2D_夹具
  3. 一文读懂5G基站节能技术
  4. 二手车价格预测--EDA
  5. Matlab蒙特卡洛模拟二维伊辛模型相变过程
  6. 目前流行的服务器管理软件是什么
  7. 优秀平面设计师的创意思维的训练技巧
  8. 服务器系统反应慢是什么原因,服务器反应慢是什么原因
  9. python之父国籍中文名字_外国人家庭的名字大全
  10. 深度学习生成对抗网络(GAN)