cookielib是一個自動處理cookies的模組,如果我們在使用爬蟲等技術的時候需要保存cookie,那麼cookielib會讓你事半功倍!他最常見的搭檔模組就是python下的urllib和request。
核心類
1.Cookie
這類實作了Netscape and RFC 2965 cookies定義的cookie標準,基本上可以理解為某一條cookie資料。
部分程式碼如下,很多屬性是不是很眼熟?
self.domain_initial_dot = domain_initial_dot self.path = path self.path_specified = path_specified self.secure = secure self.expires = expires self.discard = discard self.comment = comment self.comment_url = comment_url self.rfc2109 = rfc2109
2.CookiePolicy
該類的主要功能是收發cookie,即確保正確的cookie發往對應的域名,反之一樣。
3.DefaultCookiePolicy
該類別實作了CookiePolicy的介面。
4.CookieJar
CookieJar是cookie的集合,可以包含有很多Cookie類,是我們的主要操作對象。裡面有一系列的方法可以支援更細緻的操作!
5.FileCookieJar
這類繼承自CookieJar,CookieJar只是在記憶體中完成自己的生命週期,FileCookieJar的子類別能夠實現資料持久化,定義了save、load、revert三個介面。
6.MozillaCookieJar & LWPCookieJar
兩個實作類,繼承關係如下:
實例:登入人人網路
在firefox下使用httpFox插件來查到人人網的登入時需要POST的地址是http://www.renren.com/ajaxLogin
而且查看到需要POST的DATA有email和password
python透過cookielib來處理cookie,以下是簡單的程式碼
>>> import urllib >>> import urllib2,cookielib >>> login_page = "http://www.renren.com/ajaxLogin" >>> cj = cookielib.CookieJar() >>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) >>> opener.add_handler = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] >>> data = urllib.urlencode({"email":'username',"password":'password'}) >>> opener.open(login_page,data) <addinfourl at 53653216 whose fp = <socket._fileobject object at 0x03307B70>> >>> if cj: ... for index,cookie in enumerate(cj): ... print index,':',cookie ... 0 : <Cookie _de=90D533AE20EB964CA96710977F452897 for .renren.com/> 1 : <Cookie anonymid=hlehtdzg-8359yw for .renren.com/> 2 : <Cookie first_login_flag=1 for .renren.com/> 3 : <Cookie id=224967207 for .renren.com/> 4 : <Cookie loginfrom=null for .renren.com/> 5 : <Cookie p=9beb60859c004bcaf0a32ff2c973473d7 for .renren.com/> 6 : <Cookie societyguester=86b6a6006002ab6316f708521ab50bfc7 for .renren.com/> 7 : <Cookie t=86b6a6006002ab6316f708521ab50bfc7 for .renren.com/> 8 : <Cookie xnsid=fa53da51 for .renren.com/> 9 : <Cookie t=30af9ffe774f4d6f242e92da1ccd6670 for .renren.com/xtalk/> 10 : <Cookie feedType=224967207_hot for .www.renren.com/> 11 : <Cookie JSESSIONID=abc3IP9kEhTExblxcRfeu for www.renren.com/> >>>
可以和firebug或httpFox得到的cookie進行對比,數值可能不一致,但key基本上是一致的,你每次登入應該都不一致
我也嘗試過使用fidder模擬發送沒有cookie的POST數據,但是沒有得到想要的回傳值
而加上cookie訊息以後就可以正常的跳到自己的首頁了
好了,基本上了解了python中使用cookie來發送登入訊息,現在我們來寫一個小腳本來登入自己人人網。
#encoding=utf-8 import urllib2 import urllib import cookielib def renrenBrower(url,user,password): login_page = "http://www.renren.com/ajaxLogin" try: cj = cookielib.CookieJar() opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] data = urllib.urlencode({"email":user,"password":password}) opener.open(login_page,data) op=opener.open(url) data= op.read() return data except Exception,e: print str(e) print renrenBrower("http://www.renren.com/home","用户名","密码")
這樣就可以將自己首頁的信息顯示出來了,其實在登錄完以後,還可以接著寫腳本來獲取自己想要的信息,如朋友的新鮮事等,這裡就不作過多說明了~

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能