2014-03-27 30 views
0

/管理我嘗試下面的代碼登錄到我的Django管理頁面登錄時,透過urllib2的

#!/usr/bin/python 

import urllib, urllib2, cookielib 
from BeautifulSoup import BeautifulSoup 

cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
urllib2.install_opener(opener) 

url_admin = 'http://localhost:8000/admin/' 
url = urllib2.urlopen(url_admin) 
html = url.read() 
doc = BeautifulSoup(html) 

csrf_input = doc.find(attrs=dict(name='csrfmiddlewaretoken')) 
csrf_token = csrf_input['value'] 

params = urllib.urlencode(dict(username='my_admin_user', 
           password='my_password', 
           csrfmiddlewaretoken=csrf_token)) 

url = urllib2.urlopen(url_admin, params) 
print url.read() 

,但我得到了他下面的錯誤(在印刷HTML)

​​

我是什麼做錯了?我的目標是保持登錄會話,然後執行一些任務。事實上,用戶在這裏應該是一個管理員不是我的要求。這只是我沒有非管理員用戶的常規登錄頁面。

回答

1

我有一個類似的問題,其中服務器發送給我一個新的會話cookie在每個請求,我不能用CookieJar解決它。

我結束了使用Selenium PhantomJS webdriver。如果你沒有得到任何工作解決方案,那就試試它,這是我的經驗。

+0

嘗試我的方式確實不是很聰明。我最終設定了什麼可能是一個過度殺傷力,但現在幫助我很多:django restfull框架。我想你的回答也沒問題。 – abrunet