- 實(shí)戰(zhàn)Python網(wǎng)絡(luò)爬蟲(chóng)
- 黃永祥
- 436字
- 2019-11-22 18:44:40
5.5 使用Cookies
Cookies主要用于獲取用戶登錄信息,比如,通過(guò)提交數(shù)據(jù)實(shí)現(xiàn)用戶登錄之后,會(huì)生成帶有登錄狀態(tài)的Cookies,這時(shí)可以將Cookies保存在本地文件中,下次程序運(yùn)行的時(shí)候,可以直接讀取Cookies文件來(lái)實(shí)現(xiàn)用戶登錄。特別對(duì)于一些復(fù)雜的登錄,如驗(yàn)證碼、手機(jī)短信驗(yàn)證登錄這類網(wǎng)站,使用Cookies能簡(jiǎn)單解決重復(fù)登錄的問(wèn)題。
Urllib提供HTTPCookieProcessor()對(duì)Cookies操作,但Cookies的讀寫(xiě)是由MozillaCookieJar()完成的。下面的例子實(shí)現(xiàn)Cookies寫(xiě)入文件,代碼如下:

代碼中的cookiejar是自動(dòng)處理HTTP Cookie的類,MozillaCookieJar()用于將Cookies內(nèi)容寫(xiě)入文件。程序運(yùn)行時(shí)先創(chuàng)建MozillaCookieJar()對(duì)象,然后將對(duì)象直接傳入函數(shù)HTTPCookieProcessor(),生成opener對(duì)象;最后使用opener對(duì)象訪問(wèn)URL,訪問(wèn)過(guò)程所生成的Cookies就直接寫(xiě)入已創(chuàng)建的文本文檔中。
接著再看如何讀取Cookies,代碼如下:

讀取和寫(xiě)入的方法很相似,主要區(qū)別在于:兩者對(duì)MozillaCookieJar()對(duì)象的操作不同,導(dǎo)致實(shí)現(xiàn)功能也不同。運(yùn)行結(jié)果如圖5-2所示。

圖5-2 驗(yàn)證Cookies
注意,為了方便測(cè)試,上述代碼中使用的cookie.save()和cookie.load(filename)將Cookies內(nèi)容顯示在文本文檔中。在實(shí)際開(kāi)發(fā)中,為了提高安全性,可以在保存和讀取Cookies時(shí)設(shè)置參數(shù),使Cookies信息隱藏在文件中。方法如下:

- Linux C/C++服務(wù)器開(kāi)發(fā)實(shí)踐
- Python深度學(xué)習(xí)
- ASP.NET動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)教程(第三版)
- Blockly創(chuàng)意趣味編程
- 征服RIA
- Big Data Analytics
- Python貝葉斯分析(第2版)
- Rust Essentials(Second Edition)
- Visual Basic程序設(shè)計(jì)教程
- C# Multithreaded and Parallel Programming
- JavaScript機(jī)器人編程指南
- 零基礎(chǔ)學(xué)C語(yǔ)言(升級(jí)版)
- Jakarta EE Cookbook
- 現(xiàn)代C++語(yǔ)言核心特性解析
- Spring Boot 2+Thymeleaf企業(yè)應(yīng)用實(shí)戰(zhàn)