最近搞到了一個(gè)學(xué)校教務(wù)系統(tǒng)可以查詢?nèi)3煽?jī)的賬號(hào),恰逢申請(qǐng)獎(jiǎng)學(xué)金之際,就想用python寫(xiě)個(gè)腳本把年級(jí)里的績(jī)點(diǎn)排名給爬下來(lái)聂使,可是就在寫(xiě)登錄的時(shí)候發(fā)現(xiàn)還是要處理驗(yàn)證碼登錄的問(wèn)題盐欺,為了避免麻煩泊柬,就沒(méi)使用類似pytester的識(shí)別庫(kù)蜜唾,使用了一個(gè)比較討巧的方法:
Cookies:
cookies是用戶在登錄之后登錄網(wǎng)站發(fā)送給瀏覽器的一小段文本帖旨,其中記錄著你的登錄信息,不過(guò)不用擔(dān)心安全問(wèn)題灵妨,瀏覽器一般會(huì)幫你把cookies保護(hù)起來(lái)而且這段文本是經(jīng)過(guò)加密,平常人看來(lái)就是一堆亂碼落竹。比如這樣:
當(dāng)然泌霍,學(xué)過(guò)前端的朋友應(yīng)該都是知道的,不過(guò)cookies一般是被瀏覽器給保護(hù)起來(lái)不讓看的(比如說(shuō)Safari...) 這時(shí)候我們就要利用抓包的方法把cookies給抓下來(lái)了:
對(duì)于用Win朋友來(lái)說(shuō)可以直接用Chrome然后按F12打開(kāi)Internet述召,在登錄后刷新頁(yè)面朱转,尋找cookies,但是Chrome對(duì)于一些網(wǎng)站的兼容性比較差积暖,所以建議用Firefox瀏覽器安裝Firebug插件來(lái)查詢藤为,安裝完插件之后登錄完網(wǎng)站,然后單擊右上角的插件就發(fā)現(xiàn)可以找到cookies信息了:
接下來(lái)就是代碼的具體實(shí)現(xiàn)了夺刑,只有使用cookies登錄的部分,不涉及其他腳本代碼:
最后:
使用cookies登錄簡(jiǎn)直是要比傳統(tǒng)的寫(xiě)用戶名密碼登錄的方法爽了不知多少缅疟,基于這個(gè)方法自己寫(xiě)的選課腳本也是代碼量驟減,最后要注意cookies是有一定時(shí)間限制的遍愿,這算是一個(gè)比較討巧的方法存淫,用過(guò)一次之后就知道有多方便啦~