2013-08-21 187 views
-1

我正在使用python mechanize製作登錄腳本。我已經讀過機械化的Browser()對象會自動處理cookie以便進一步請求。 我怎樣才能使這個cookie持久存在,即保存到一個文件,以便我可以稍後從該文件加載。 我的腳本當前正在使用Browser()對象每次運行時登錄(使用機械化/ HTML表單)到網站。Cookie的持久性

回答

0

如果你經歷了機械化的API文檔在

http://wwwsearch.sourceforge.net/mechanize/doc.html

沒有關於具體你要問什麼,特別是CookieJarLWPCookieJar材料的一些信息。

從文檔:

也有其可以存儲Cookie在文件和數據庫中的一些CookieJar子類。 FileCookieJar是CookieJars的抽象類,可以將Cookie存儲在磁盤文件中。 LWPCookieJar以與libwww-perl庫兼容的格式保存cookie。

import mechanize 
cj = mechanize.LWPCookieJar() 
cj.revert("cookie3.txt") 
opener = mechanize.build_opener(mechanize.HTTPCookieProcessor(cj)) 
r = opener.open("http://foobar.com/") 
cj.save("cookie3.txt") 

編輯:如果你想存儲cookie在人類可讀的文件這個類是方便了什麼是要求在評論

  • 嘗試從文件
  • 加載CookieJar僞代碼
  • 如果成功的話,將瀏覽器設置()餅乾罐到加載餅乾罐
  • 試圖訪問的頁面通常
  • 不然,如果不成功的經歷次直到達到您擁有所有cookie的點
  • 使用LWPCookieJar()將cookie保存到文件中;
+0

第三行出錯。沒有名爲'cookie3.txt'的文件(我試圖創建一個空的cookie3.txt文件,沒有工作)。我還需要使用像'open()','find_link()','click_link()'等'Browser()'方法,通過加載保存的cookie ... – user2332665

+0

你得到了'No file named'錯誤,因爲它不存在。我發佈的代碼是一個使用示例,而不是'將其插入代碼中'。至於使用瀏覽器,那麼就這樣做?你可以調用Browser()。set_cookie_jar(cj)'來設置它的cookies。這不是原來的問題,但是如果你不想如何堅持你的cookies,你應該修改它。 –

+0

我沒有得到我的答案。也許我會告訴你我需要做什麼1)訪問網站'http://m.mobile9.com/'在您的網頁瀏覽器。你第一次從你的瀏覽器訪問這個網站(即所有你的瀏覽器從這個網站的cookies應該被清除)2)因爲這是你第一次向你展示一個電話選擇器頁面3)讓我們選擇一個電話,說'諾基亞6300'4)你會被重定向到網址'http://gallery.mobile9.com/o/nokia+6300_409/'5)下次你訪問'http://m.mobile9.com/'你會在第4步自動重定向到url 6)這是我想/不能每次都選擇電話 – user2332665