python中requests模拟登录的三种方式(携带cookie/session进行请求网站)


Posted in Python onNovember 17, 2020

一,cookie和session的区别

cookie在客户的浏览器上,session存在服务器上
cookie是不安全的,且有失效时间
session是在cookie的基础上,服务端设置session时会向浏览器发送设置一个设置cookie的请求,这个cookie包括session的id当访问服务端时带上这个session_id就可以获取到用户保存在服务端对应的session

二,爬虫处理cookie和session

带上cookie和session的好处:
能够请求到登录后的界面 

带上cookie和session的弊端:
一个cookie和session往往和一个用户对应,访问太快容易被服务器检测出来爬虫 

不需要cookie的时候尽量不要用

三,处理session,cookie请求

1,cookie请求方式

1.1 直接使用浏览器抓包到的现有的cookie进行访问网站:
 放在header字典里面

header={
"User-Agent":"Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/64.0",
"Cookie":"csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2; username=chengyangkj",
}
r=request.get(url,headers=header)

当然也可以在发送get请求时加上cookies的字典参数:

Cookie="csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2; username=chengyangkj"

但是接受的参数是字典类型的,这就需要我们适用字符串分割方法把cookie字符串转为字典形式:

Cookie="csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2; username=chengyangkj"
cookies={i.split("=")[1]:i.split("=")[1] for i in Cookie.split("; ")} 
#先使用for循环遍历Cookie以”; “(分号和空格)分开的列表 再分别获取i以等号分割的列表的[0] [1] 位置填入 字典键 和值的位置
r=request.get(url,headers=header,cookies=cookies)

适用于cookie过期时间比较长的网站

2.session请求方式
request提供了一个一个叫做session的类,来实现客户端和服务端的会话保持
 使用方法:
1.实例化一个session对象
2.让session发送get或post请求
3.再使用session访问只有登录之后才能访问的网站,这时候session会自动带上服务器保存在其中的信息进行访问

session=request.session() #实例化session对象
response=session.get(url,header) #使用session对象发送get请求 就能获取服务端设置的session对象

到此这篇关于python中requests模拟登录的三种方式(携带cookie/session进行请求网站)的文章就介绍到这了,更多相关python requests模拟登录 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用百度翻译进行中翻英示例
Apr 14 Python
Python实现全局变量的两个解决方法
Jul 03 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python切片工具pillow用法示例
Mar 30 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
python3-flask-3将信息写入日志的实操方法
Nov 12 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
Python调用Redis的示例代码
Nov 24 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 #Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 #Python
pymysql模块使用简介与示例
Nov 17 #Python
Python模拟登录requests.Session应用详解
Nov 17 #Python
关于python scrapy中添加cookie踩坑记录
Nov 17 #Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 #Python
PyTorch预训练Bert模型的示例
Nov 17 #Python
You might like
简单采集了yahoo的一些数据
2007/02/14 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
深入理解Vuex 模块化(module)
2017/09/26 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python中xrange与yield的用法实例分析
2017/12/26 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Python3 log10()函数简单用法
2019/02/19 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
军训的自我鉴定
2013/12/10 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
授权委托书怎么写
2014/04/03 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS