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查找第k小元素代码分享
Dec 18 Python
python使用7z解压apk包的方法
Apr 18 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
分享Python文本生成二维码实例
Jan 06 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
Jul 15 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
Python基于xlutils修改表格内容过程解析
Jul 28 Python
python空元组在all中返回结果详解
Dec 15 Python
基于 Python 实践感知器分类算法
Jan 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
PHP 正则表达式小结
2015/02/12 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
模拟select的代码
2011/10/19 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
django模板语法学习之include示例详解
2017/12/17 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
会议主持词
2014/03/17 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
运动会闭幕词
2015/01/28 职场文书
班级班风口号大全
2015/12/25 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
话题作文之呼唤
2019/12/18 职场文书