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的函数嵌套的使用方法
Jan 24 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
Python计算IV值的示例讲解
Feb 28 Python
python怎么调用自己的函数
Jul 01 Python
Python趣味入门教程之循环语句while
Aug 26 Python
Python gevent协程切换实现详解
Sep 14 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
Python 如何解决稀疏矩阵运算
May 26 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
pandas取出重复数据的方法
2019/07/04 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
大学生求职简历的自我评价
2013/10/14 职场文书
法律进社区实施方案
2014/03/21 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
贫困证明怎么写
2015/06/16 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
MySQL读取JSON转换的方式
2022/03/18 MySQL
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android