1?保存Cookie到變量
如果要管理HTTP?Cookie姻灶,需要創(chuàng)建一個包含CookieJar對象的HTTPCookieProcessor處理程序搁吓,可以將不同類型的CookieJar對象傳遞給HTTPCookieProcessor蔑歌,進(jìn)而可以得到不同的Cookie處理佃乘。
下面代碼顯示了如何將獲取到的Cookie變量保存下來薪贫,并打印出來艘狭,如下:
上述代碼中骂远,首先創(chuàng)建了一個CookieJar對象囚霸,用于管理和存儲cookie內(nèi)容,然后將其傳遞到HTTPCookieProcessor中激才;接著拓型,創(chuàng)建一個opener,并將HTTPCookieProcessor對象傳入到opener贸营,這樣在獲取URL時吨述,cookie信息就自動存儲在CookieJar對象中;最后钞脂,將獲取到的cookie值打印出來如下:
從打印結(jié)果來看揣云,cookie內(nèi)容信息就是鍵值對的組合。
2?保存cookie到文件
如果想將cookie信息保存到文件中冰啃,就要用到我們之前將的CookieJar的子類邓夕,例如采用MozillaCookieJar刘莹,直接上代碼:
代碼中最大的不同是在創(chuàng)建CookieJar對象的時候指定一個保存cookie信息的文件,在調(diào)用MozillaCookieJar中的save方法時焚刚,要注意里面的兩個參數(shù)含義点弯,ignore_discard的意思是即使cookies將被丟棄也將它保存下來,ignore_expires的意思是如果在該文件中cookies已經(jīng)存在矿咕,則覆蓋原文件寫入抢肛,在這里,我們將這兩個全部設(shè)置為True碳柱。運行之后捡絮,cookies將被保存到cookie.txt文件中,我們查看一下內(nèi)容:
3?從文件中讀取cookie并訪問
當(dāng)cookie信息保存到本地文件中后莲镣,下次再次訪問該網(wǎng)站時福稳,我們就可以讀取cookie文件信息并訪問網(wǎng)站,上代碼:
4?利用cookie模擬登錄
下面將利用前面講解的cookie方法實現(xiàn)模擬登錄某教育系統(tǒng)瑞侮,進(jìn)而查詢成績?yōu)槔脑玻苯由洗a:
注:以上代碼僅供說明技術(shù)原理所用。
代碼原理是創(chuàng)建帶有cookie變量的opener半火,然后構(gòu)建用戶登錄信息postData越妈,并將其傳入到opener中的open方法中;此時的cookie登錄信息便存儲在cookie變量中慈缔,并將其寫入到外部文件中叮称;最后利用已有登錄信息的opener去訪問成績頁面种玛,便能夠順利拿到包含成績的頁面信息啦藐鹤。