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 相关文章推荐
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
Python打印“菱形”星号代码方法
Feb 05 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
Python logging设置和logger解析
Aug 28 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
如何在mac下配置python虚拟环境
Jul 06 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python3.9新特性详解
Oct 10 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
pytorch 6 batch_train 批训练操作
May 28 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 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
php模板之Phpbean的目录结构
2008/01/10 PHP
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
ptyhon实现sitemap生成示例
2014/03/30 Python
Python实现简单多线程任务队列
2016/02/27 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python中adb有什么功能
2020/06/07 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
会展中心部门工作职责
2013/11/27 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
调解协议书
2014/04/16 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
作风建设年度心得体会
2014/10/29 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
庐山导游词
2015/02/03 职场文书
中考学习决心书
2015/02/04 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python