2011-09-07 70 views
3

固定的,httplin2不能處理多個cookie,補丁可以在這裏找到:http://code.google.com/p/httplib2/issues/detail?id=146的Python 3 httplib2的餅乾

我編碼一個網站的登錄腳本,讓我最後一次通知,但 我有問題。我已經從urllib更改爲httplib2,因爲它對我而言似乎更容易,更快速。使用urllib的我能得到正確的 cookie,並使用它時,曾經我需要找回 通知,我現在正在使用從httplib的頁面的例子:

user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; 

RV:1.9.2.8) Gecko/20100722 Firefox/3.6.8' header = {'User-Agent':user_agent'Content-type': 'application/x-www-form-urlencoded','Accept': 'text/html,應用程序/ xhtml + xml,application/xml; q = 0.9,/; q = 0.8', 'Connection':'keep-alive','Accept-Encoding':'gzip,deflate', 'Referer' :'http://m.facebook.com/'} data = {'email':'myusername','pass':'mypassword', 'post_form_id':'','charset_test':'','version':1,'ajax':1, 'pxr ':1,'gps':1,'login':'Entrar'} response,content = h.request(「http://www.facebook.com/login.php?m=m & refsrc = http ://m.facebook.com/ & REFID = 0" , 「POST」,urllib.parse.urlencode(數據),標頭=報頭)

這是我發現了報頭:

{'status': '200', 'x-cnection': 'close', 'content-location': 

'http://m.facebook.com/home.php?refsrc=http%3A%2F%2Fm.f acebook.com%2F & REFID = 0 & m_sess = *** tAm60 & _rdr ' '傳送編碼': '分塊', '的Set-Cookie': ' DATR = * **** * F-OQsTCnbw0Caa; expires = Fri,2013年09月06日20:33:26 GMT; path = /;域= .facebook.com; httponly','expires':'Sat,01 Jan 01 00:00:00 GMT','x-fb-server':'10 .62.188.41','content-length': '26702','-content '編碼':'gzip','pragma':'no-cache', 'cache-control':'private,no-cache,no-store,must-revalidate', 'date':'Wed,07 2011年9月20:33:27 GMT','p3p':'CP =「Facebook不會 有一個P3P政策。字符集= UTF-8' , 'X框選項': 'DENY'}

如果我不使用h.follow_all_redirects = true選項,它並不 重定向我的主頁,但在重定向之前,設置的cookie位於第一個 頁面上。我得到的cookies是:set-cookie': 'datr=F*******F-OQsTCnbw0Caa; expires=Fri, 06-Sep-2013 20:33:26 GMT; path=/; domain=.facebook.com; httponly'

但是這些cookie不足以使會話處於活動狀態。在 瀏覽器我得到一個更大的cookie:

datr=EzIL*********e-JFJL; lu=wgrr3q**********; locale=es_LA; L=2; 

行爲= 13 * * ** *; m_user = * **%40gmail。com%3A526402587%3AN * * ****%3A0%3Av_1%2Cajax_1%2Cwidth_1600%2Cpxr_1%2Cgps_1%3A13 * ** 1099; p = 182; FL = 1; W = 13 *** * 99; reg_fb_ref = HTTPS%3A%2F%2Fwww.facebook.com%2Flogin.php%3FM%3DM%26refsrc%3Dhttp%253A%252F%252Fm.facebook.com%252F%26refid%3D0

可能是什麼問題?

+1

如果它的「固定」,不要在提問編輯它,你自己張貼解答問題(並接受它)。 – orlp

+0

感謝您的評論,我不知道該怎麼辦。 – Lautaro

回答