2014-01-23 68 views
2

我試圖通過Python和機械化登錄到我們的PowerSchool服務器,但我似乎無法成功地做到這一點。其中一個棘手的部分是,登錄表單只有一個字段用於輸入我的用戶名和密碼,並用分號分隔。這裏是網頁:https://powerschool.laalliance.org/admin/home.html試圖使用機械化(Python)登錄到PowerSchool網站 - 失敗

有人可以告訴我,如果我的代碼是正確的?

br = mechanize.Browser() 
br.set_handle_robots(False) 
br.set_handle_refresh(False) 
br.addheaders = [("User-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0")] 
br.open('https://powerschool.laalliance.org/admin/') 

br.select_form(name='LoginForm') 
br.set_all_readonly(False) 
#br.find_control('pstoken').readonly = False 
#br.form['pstoken'] = '123123asdfasdf123123' 
br.form['password'] = 'jdoe;' + pw 

br.method = 'POST' 
response = br.submit() 
print response.read() 

回答

1

經過的網站,如果你在表格上單擊鼠標右鍵,然後選擇「檢查元素」,你會看到表格的名稱是:「密碼」

因此,應更換您行:

br.select_form(name='LoginForm') 

br.select_form(name='password') 

這是否解決問題了嗎?

+0

其實,剛剛嘗試過你的原始代碼,並且我得到了以下內容:「無效的用戶名或密碼!嘗試已被記錄。」看起來它應該工作,因爲我沒有密碼,這就是爲什麼我的登錄嘗試失敗。 –

+1

哦,我沒有想過要查找錯誤信息。一旦我看到返回的頁面是一個機器人頁面,我只是假定登錄失敗。我想現在我必須弄清楚如何避免被檢測爲機器人。感謝您的提示,我想徽章(哈哈你的名字)。 – dnaeye

+0

試試這個:'br.set_handle_robots(False)'這應該有效。 – RydallCooper