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 30 Python
python自动化脚本安装指定版本python环境详解
Sep 14 Python
Python实现简单遗传算法(SGA)
Jan 29 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python的继承知识点总结
Dec 10 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
python torch.utils.data.DataLoader使用方法
Apr 02 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
浅谈Vue.js
2017/03/02 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python交换变量
2008/09/06 Python
Python实现提取文章摘要的方法
2015/04/21 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
Python 实现向word(docx)中输出
2020/02/13 Python
Python龙贝格法求积分实例
2020/02/29 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
小学开学典礼主持词
2014/03/19 职场文书
法定代表人身份证明书
2015/06/18 职场文书
升学宴家长致辞
2015/07/27 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技