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 相关文章推荐
Python3中的真除和Floor除法用法分析
Mar 16 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
pandas对指定列进行填充的方法
Apr 11 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
Python 元组操作总结
Sep 18 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
python 常见的反爬虫策略
Sep 27 Python
python基于exchange函数发送邮件过程详解
Nov 06 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
全文搜索和替换
2006/10/09 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
php实现点击可刷新验证码
2015/11/07 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
python 不以科学计数法输出的方法
2018/07/16 Python
django如何实现视图重定向
2019/07/24 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
弘扬雷锋精神演讲稿
2014/05/10 职场文书
欢送领导祝酒词
2015/08/12 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js