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常见的格式化输出小结
Dec 15 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
python中正则表达式与模式匹配
May 07 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python实现图片压缩代码实例
Aug 12 Python
Python一键安装全部依赖包的方法
Aug 12 Python
python自动发微信监控报警
Sep 06 Python
Python中的Cookie模块如何使用
Jun 04 Python
Python下划线5种含义代码实例解析
Jul 10 Python
Python中logger日志模块详解
Aug 04 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 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
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Python中的类与类型示例详解
2019/07/10 Python
Django如何将URL映射到视图
2019/07/29 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
python怎么判断素数
2020/07/01 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
露营世界:Camping World
2017/02/02 全球购物
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
工商管理本科生求职信
2014/07/13 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
涨价通知怎么写
2015/04/23 职场文书
关于感恩的作文
2019/08/26 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers