通过爬虫来理解Cookie和Session

前言

Cookie和Session的概念我也接触过很多次,但一直没有机会实践一下,正巧最近想用爬虫模拟登录教务系统,就想到了利用Http的请求头来进行登录操作

登录的流程

无标题绘图.png

这样做有什么好处?

最大的好处就是用户只需要输入一次账号密码,之后再访问网页时,只需要再Headers信息利用Cookie包含Session_id,后台就可以根据Session_id来判断用户是否登录

Session_id也有可能存在内存上

Set_cookie

一般打开教务系统时,因为我们前面多次登录过,因此Cookie信息会一直保存在浏览器中,我们要做的就是先清除Cookie

cookie.PNG

清除完Cookie刷新界面,可以看到返回的头部信息

cookie1.PNG

Cookie

之后我们先输入账号密码登录
成功登录之后页面会进行跳转,对于我使用的教务系统
跳转到了
http://172.18.254.101/xs_main.aspx?xh=学号
然后看一下对于这个页面的请求头部信息

cookie3.PNG

利用爬虫进行模拟登录

注意
在进行模拟登录时一定要在网页上保持教务系统的登录(不要退出!!!)

观察整个请求头发现,只需要在利用爬虫进行请求页面时把Headers与上述图片的Headers设置完全一样就可以获得页面信息

import requests

headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Cookie': 'ASP.NET_SessionId=t2iov2450tkelm55eiqm3ki3; BIGipServerpool-jw=2046694060.0.0000',
    'Host': '172.18.254.101',
    'Referer': 'http://172.18.254.101/',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'
    
}

r = requests.get('http://172.18.254.101/xs_main.aspx?xh=201616070204', headers=headers)
print(r.text)

因为请求头中包含了Session_id等信息,因此后台服务器会对Session_id进行认证,认证通过,就意味着登录成功

cookie4.PNG

退出网页

当我们在教务系统退出时,发现上述代码已经不能用了


cookie5.PNG

猜测在后台服务器中Session_id存储在内存上,要不然对于频繁的登录登出操作如果通过数据库进行增删查,那么会对速度造成很大的影响

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Se...
    chinariver阅读 5,702评论 1 49
  • 1. cookie 1.1 什么是cookie cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过...
    cbw100阅读 4,104评论 0 13
  • 1 Stray birds of summercome to my windowto sing and fly a...
    朝曦Dawn阅读 260评论 0 2
  • 每一次猪蹄子过来敲我的门,我都是跑着去给他开门 但是每一次我去敲他的门,他都是慢慢悠悠过来开门,于是今天我给他开门...
    雪地里的路痴阅读 261评论 0 0
  • 梦回 走在路上 感觉到你温热的气息 忍不住偷偷一笑 想在你的耳朵上轻轻一咬 让爱的气息 从你的齿间滑进...
    回彦秀阅读 262评论 0 3