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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python常用模块介绍
Nov 21 Python
python实现定时同步本机与北京时间的方法
Mar 24 Python
python回调函数用法实例分析
May 09 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
教你用Python创建微信聊天机器人
Mar 31 Python
Python get获取页面cookie代码实例
Sep 12 Python
详解python中*号的用法
Oct 21 Python
如何理解python面向对象编程
Jun 01 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
Python实现我的世界小游戏源代码
Mar 02 Python
Python初识逻辑与if语句及用法大全
Aug 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文件上传的简单实例
2013/10/19 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
Python中DJANGO简单测试实例
2015/05/11 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
python字符串格式化方式解析
2019/10/19 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
Python编写万花尺图案实例
2021/01/03 Python
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
联想C++笔试题
2012/06/13 面试题
自我鉴定模板
2013/10/29 职场文书
机电专业毕业生推荐信
2013/11/10 职场文书
班长岗位职责
2013/11/10 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
信访工作者先进事迹
2014/01/17 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
理想国读书笔记
2015/06/25 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers