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 相关文章推荐
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
Python探索之Metaclass初步了解
Oct 28 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
python的sorted用法详解
Jun 25 Python
带你学习Python如何实现回归树模型
Jul 16 Python
python的flask框架难学吗
Jul 31 Python
python em算法的实现
Oct 03 Python
python超详细实现完整学生成绩管理系统
Mar 17 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 过滤器实现代码
2010/08/09 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
dojo 之基础篇
2007/03/24 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python 测试实现方法
2008/12/24 Python
Python栈类实例分析
2015/06/15 Python
python实现分页效果
2017/10/25 Python
python中模块的__all__属性详解
2017/10/26 Python
python中scikit-learn机器代码实例
2018/08/05 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
Python 串口通信的实现
2020/09/29 Python
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
Java软件工程师综合面试题笔试题
2013/09/08 面试题
创业计划实施的7大步骤
2014/02/05 职场文书
大学生校园创业计划书
2014/02/08 职场文书
优秀食品类广告词
2014/03/19 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL