python模拟登陆,用session维持回话的实例


Posted in Python onDecember 27, 2018

python模拟登陆的几种方法

客户端向服务器发送请求,cookie则是表明我们身份的标志。而“访问登录后才能看到的页面”这一行为,恰恰需要客户端向服务器证明:“我是刚才登录过的那个客户端”。于是就需要cookie来标识客户端的身份,以存储它的信息(如登录状态)

1、先在浏览器中登录,然后打开开发者选项,找到一个请求方法为POST的请求,复制Requests Headers中的cookie在爬取需要登录的页面时加上此cookies即可

import requests
url = '......'
headers = {'cookies':'......'}
response = requests.get(url=url, headers=headers)

2、 模拟登录,并用session维持会话,用requests的session模拟登录后session会记录cookies,接下来的请求会被放在同一个会话中。举个简单例子,在 requests 中,如果直接利用 get()或 post()等方法的确可以做到模拟网页的请求,但是这实际 上是相当于不同的会话,也就是说相当于你用了两个浏览器打开了不同的页面。设想这样一个场景,第一个请求利用 post()方法登录了某个网站,第二次想获取成功登录后的自 己的个人信息,你又用了一次 get()方法去请求个人信息页面。 实际上,这相当于打开了两个浏览器, 这是两个完全不相关的会话,能成功获取个人信息吗?那当然不能

import requests
'''
下面的data是先在浏览器中登录,然后打开开发者选项,找到一个请求方法为POST的请求,复制里面的Form Data
'''
url = '......'
data = {
  username:'......',
  password:flz_sanqianchi,
  rememberMe:true,
  lt:LT-82465-9HtQnC7ZASZHohtnQlrqMvXo7cI2B7,
  execution:e1s1,
  }
headers = {'user-agent':'Mozolla/5.0'}
'''
这里用requests的session来请求网页,做到维持同一会话的目的
'''
session = requests.Session()
reqsonse = session.post(url=url, headers=headers, data=data)
'''
接下来就可以请求别的登陆后的页面,而不需要处理cookies
'''
url2 = '这里是已经登录后的某一页面'
response = session.get(url=url2, headers=headers)

以上这篇python模拟登陆,用session维持回话的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python条件和循环的使用方法
Nov 01 Python
python构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
python获取android设备的GPS信息脚本分享
Mar 06 Python
举例简单讲解Python中的数据存储模块shelve的用法
Mar 03 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
python设置代理和添加镜像源的方法
Feb 14 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
Python 实现简单的客户端认证
Jul 29 Python
Python读取图像并显示灰度图的实现
Dec 01 Python
python requests post多层字典的方法
Dec 27 #Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 #Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 #Python
python 与服务器的共享文件夹交互方法
Dec 27 #Python
通过pykafka接收Kafka消息队列的方法
Dec 27 #Python
python利用thrift服务读取hbase数据的方法
Dec 27 #Python
python hbase读取数据发送kafka的方法
Dec 27 #Python
You might like
PHP4引用文件语句的对比
2006/10/09 PHP
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
东南亚地区最大的购物网站Lazada新加坡站点:Lazada.sg
2016/07/17 全球购物
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
.NET概念性的面试题
2012/02/29 面试题
会计毕业生求职简历的自我评价
2013/10/20 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS