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升级提示Tkinter模块找不到的解决方法
Aug 22 Python
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
python自定义异常实例详解
Jul 11 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
python使用xslt提取网页数据的方法
Feb 23 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
python networkx 包绘制复杂网络关系图的实现
Jul 10 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 Python
python神经网络ResNet50模型
May 06 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正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
Python生成8位随机字符串的方法分析
2017/12/05 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python何时应该使用Lambda函数
2019/07/02 Python
Python3进制之间的转换代码实例
2019/08/24 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
python:动态路由的Flask程序代码
2019/11/22 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
python实现移动木板小游戏
2020/10/09 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
公司企业表扬信
2014/01/11 职场文书
加拿大留学自荐信
2014/01/28 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers