2012-06-23 115 views
1

** 編輯 經過一個簡短的想法,我只是想到,我不必使用機械化的所有 ,但我不知道我應該使用哪個Python庫爲了W/ cookie和session數據交互, 誰能請我暗示? **Python會話,餅乾和網絡

我想對一些網站進行簡單的註冊和使用的憑據(和餅乾,太會話數據)。

我以執行基本形式的使用使用機械化,因爲形式被使用Javascript

import cookielib 
br = mechanize.Browser() 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 
br.set_handle_equiv(True) 
br.set_handle_gzip(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 


br.set_debug_http(True) 
br.set_debug_redirects(True) 
br.set_debug_responses(True) 

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

parameters = { 'username' : 'w00t', 
       'password' : 't00w' 
      } 
data = urllib.urlencode(parameters) 
resp = br.open(url,data) 

但是由於某種原因,我似乎無法從服務器獲取任何正面迴應建,我沒有看到任何符號(用於重定向到所需的頁面),也不知道如何繼續,一旦我有餅乾和會話實際上繼續使用這些cookie和會話數據

我想知道是否有人可以提示我或者轉介給我正確的文檔,因爲我發現似乎沒有解決我的問題

回答

1

我用過的請求庫(http://docs.python-requests.org/en/latest/index.html)對於這樣的事情在Python之前。我發現它非常簡單,並且有很好的文檔。下面是包括請求的cookie的例子:

>>> url = 'http://httpbin.org/cookies' 
>>> cookies = dict(cookies_are='working') 

>>> r = requests.get(url, cookies=cookies) 
>>> r.text 
'{"cookies": {"cookies_are": "working"}}' 

我用機械化,如果我還記得,它跟蹤的cookie的爲您服務。相反,這個圖書館會要求你不斷地根據請求重新發布cookies。