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中ConfigParse模块的用法
Sep 29 Python
详解python3实现的web端json通信协议
Dec 29 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
简单的Python调度器Schedule详解
Aug 30 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
python获取array中指定元素的示例
Nov 26 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
python爬虫快速响应服务器的做法
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
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
Python中使用动态变量名的方法
2014/05/06 Python
Python日志模块logging简介
2015/04/13 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
python 两个数据库postgresql对比
2019/10/21 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
学习雷锋精神心得体会范文
2014/03/12 职场文书
心理健康活动总结
2014/04/30 职场文书
公司委托书格式范文
2014/10/09 职场文书
离婚协议书格式
2015/01/26 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
Go使用协程交替打印字符
2021/04/29 Golang
SpringBoot 集成Redis 过程
2021/06/02 Redis
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS