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 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
python实现监控linux性能及进程消耗性能的方法
Jul 25 Python
Python入门篇之列表和元组
Oct 17 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
Python获取SQLite查询结果表列名的方法
Jun 21 Python
python清理子进程机制剖析
Nov 23 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Django URL参数Template反向解析
Nov 24 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php常用正则函数实例小结
2016/12/29 PHP
PHP时间函数使用详解
2019/03/21 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
学习Python需要哪些工具
2020/09/04 Python
快速创建python 虚拟环境
2020/11/28 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
班级学习雷锋活动总结
2014/07/04 职场文书
小学捐书活动总结
2014/07/05 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
小学生思想品德评语
2014/12/31 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
初中班长竞选稿
2015/11/20 职场文书