通過爬蟲來理解Cookie和Session

前言

Cookie和Session的概念我也接觸過很多次,但一直沒有機(jī)會(huì)實(shí)踐一下,正巧最近想用爬蟲模擬登錄教務(wù)系統(tǒng),就想到了利用Http的請(qǐng)求頭來進(jìn)行登錄操作

登錄的流程

無標(biāo)題繪圖.png

這樣做有什么好處?

最大的好處就是用戶只需要輸入一次賬號(hào)密碼,之后再訪問網(wǎng)頁(yè)時(shí),只需要再Headers信息利用Cookie包含Session_id,后臺(tái)就可以根據(jù)Session_id來判斷用戶是否登錄

Session_id也有可能存在內(nèi)存上

Set_cookie

一般打開教務(wù)系統(tǒng)時(shí),因?yàn)槲覀兦懊娑啻蔚卿涍^,因此Cookie信息會(huì)一直保存在瀏覽器中,我們要做的就是先清除Cookie

cookie.PNG

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

cookie1.PNG

Cookie

之后我們先輸入賬號(hào)密碼登錄
成功登錄之后頁(yè)面會(huì)進(jìn)行跳轉(zhuǎn),對(duì)于我使用的教務(wù)系統(tǒng)
跳轉(zhuǎn)到了
http://172.18.254.101/xs_main.aspx?xh=學(xué)號(hào)
然后看一下對(duì)于這個(gè)頁(yè)面的請(qǐng)求頭部信息

cookie3.PNG

利用爬蟲進(jìn)行模擬登錄

注意
在進(jìn)行模擬登錄時(shí)一定要在網(wǎng)頁(yè)上保持教務(wù)系統(tǒng)的登錄(不要退出!!?。?/p>

觀察整個(gè)請(qǐng)求頭發(fā)現(xiàn),只需要在利用爬蟲進(jìn)行請(qǐng)求頁(yè)面時(shí)把Headers與上述圖片的Headers設(shè)置完全一樣就可以獲得頁(yè)面信息

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)

因?yàn)檎?qǐng)求頭中包含了Session_id等信息,因此后臺(tái)服務(wù)器會(huì)對(duì)Session_id進(jìn)行認(rèn)證,認(rèn)證通過,就意味著登錄成功

cookie4.PNG

退出網(wǎng)頁(yè)

當(dāng)我們?cè)诮虅?wù)系統(tǒng)退出時(shí),發(fā)現(xiàn)上述代碼已經(jīng)不能用了


cookie5.PNG

猜測(cè)在后臺(tái)服務(wù)器中Session_id存儲(chǔ)在內(nèi)存上,要不然對(duì)于頻繁的登錄登出操作如果通過數(shù)據(jù)庫(kù)進(jìn)行增刪查,那么會(huì)對(duì)速度造成很大的影響

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 會(huì)話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個(gè)會(huì)話。常用的會(huì)話跟蹤技術(shù)是Cookie與Se...
    chinariver閱讀 5,786評(píng)論 1 49
  • 1. cookie 1.1 什么是cookie cookie 是存儲(chǔ)于訪問者的計(jì)算機(jī)中的變量。每當(dāng)同一臺(tái)計(jì)算機(jī)通過...
    cbw100閱讀 4,196評(píng)論 0 13
  • 1 Stray birds of summercome to my windowto sing and fly a...
    朝曦Dawn閱讀 288評(píng)論 0 2
  • 每一次豬蹄子過來敲我的門,我都是跑著去給他開門 但是每一次我去敲他的門,他都是慢慢悠悠過來開門,于是今天我給他開門...
    雪地里的路癡閱讀 265評(píng)論 0 0
  • 夢(mèng)回 走在路上 感覺到你溫?zé)岬臍庀?忍不住偷偷一笑 想在你的耳朵上輕輕一咬 讓愛的氣息 從你的齒間滑進(jìn)...
    回彥秀閱讀 290評(píng)論 0 3

友情鏈接更多精彩內(nèi)容