python urllib2模塊攜帶cookie


今天干活遇到一個事。有一些網站的一些操作非得要求你登陸才能做,比如新浪微博,你要隨便看看吧,不行,非得讓你登陸了才能看,再比如一些用戶操作,像更改自己的資料啦,個人的隱私啦巴拉巴拉的。想抓取這樣的url的話,就得一邊攜帶cookie一邊搞。

今天遇到的問題就是mediawiki的編輯文章這個操作,wiki默認是要求你登陸才能編輯。不過wiki是開源的,可以改源碼設置成不用非得登陸也可以編輯。最開始為了快點看到效果,就是改的源碼,記得是LocalSetting.php這個文件,里面有一堆鍵值對,是用戶權限的設置。都是布爾,很好搞。

后來又研究了一下urllib2是怎么攜帶cookie的:

下面干這么一件事:去知乎登陸,完了進到個人中心的編輯資料頁面。就這兩步

#encoding:utf-8
import urllib
import urllib2
import cookielib #用來搞cookie的

#第一步:登陸知乎

#拿到一個cookie實例,用來保留cookie,具體怎么保留這個不用操心,一切給http handler(這里就是HTTPCookieProcessor)處理
cookie = cookiellib.CookieJar()
#整一個opener出來,實際上不這么整的話,就像最普通的urllib2.urlopen(url)這樣,實際上也是用了一個默認的openrer,只不過今天在這里是明確指定了opener,因為要搞cookie么
#build_opener里面加了一個http handler用來處理所有http請求相關的東西,包括cookie的操作,這里為了搞cookie,所以用了這個cookieprocessor,里面放剛才的cookie實例
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
data = {"email":"xxx","password":"xxx"}
data=urllib.urlencode(data) request
= urllib2.Request("http://www.zhihu.com/login", data) response = opener.open(request) #這個時候cookie已經被保存好了 print cookie #第二步:進入個人中心編輯頁面 #注意上面cookie已經保存好了,而且注意是用這個cookie創建了httpcookieprocessor,又用這個httphandler創建了opener,所以這個opener就跟cookie關聯上了,那么接下來進入個人中心就直接用這個opener就可以了 response2 = opener.open("http://www.zhihu.com/people/edit") #完事 謝謝

完事,洗香香去,完了俯卧撐,昨晚昨晚今天胸疼嗷嗷嗷嗷


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM