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下使用Psyco模块优化运行速度
Apr 05 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python遍历numpy数组的实例
Apr 04 Python
Python requests库用法实例详解
Aug 14 Python
python3 实现验证码图片切割的方法
Dec 07 Python
Python continue语句实例用法
Feb 06 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Autopep8的使用(python自动编排工具)
Mar 02 Python
使用python如何删除同一文件夹下相似的图片
May 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执行zip与rar解压缩方法实现代码
2010/12/05 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
python difflib模块示例讲解
2017/09/13 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Python之修改图片像素值的方法
2019/07/03 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
如何用Python绘制3D柱形图
2020/09/16 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
html5实现滑块功能之type="range"属性
2020/02/18 HTML / CSS
计算机求职信
2013/12/01 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
文案策划求职信
2014/03/18 职场文书
教师求职信范文
2014/05/24 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL