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 相关文章推荐
easy_install python包安装管理工具介绍
Feb 10 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
python批量查询、汉字去重处理CSV文件
May 31 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
python 构造三维全零数组的方法
Nov 12 Python
Python从函数参数类型引出元组实例分析
May 28 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
Python getsizeof()和getsize()区分详解
Nov 20 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+mysql)
2007/11/23 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
Python调用.NET库的方法步骤
2019/12/27 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
办公室主任先进事迹
2014/01/18 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
数学系毕业生求职信
2014/05/29 职场文书
学校食堂标语
2014/10/06 职场文书