2013-06-26 64 views
0

我正在嘗試登錄到一個網站上使用機械化python;然而,當與形式正確的憑據呈現它無法登錄使用機械化密碼失敗失敗/ python

下面是我在做什麼遵循機械化教程:

def logon(self): 
    baseurl = "https://www.website.com/login" 
    br = mechanize.Browser(factory=mechanize.RobustFactory()) 
    br.open(baseurl) 
    br.select_form(nr=0) 
    br.form["username"] = self.username 
    br.form["password"] = self.password 
    response = br.submit() 
    print response.geturl() 

這應該帶我去website.com/dashboard但它的在網站/login頁面上說,就像失敗一樣。我可以手動登錄,一切都通過調試器,所以我不知道我做錯了什麼。我做了一些挖掘,並通過HTML的表單檢查了javascript,並且表單似乎沒有任何附加內容。

這裏的形式:

<form method="post" class="login-form"> 
       <fieldset> 
        <div class="row form-section"> 
         <label for="email">Email Address</label> 
         <span class="input-text"><input class="required-email" type="text" id="email" value="" name="username" /><span class="required">Required Info</span></span> 
         <!--<input type="text" id="email" name="username" placeholder="Enter Email Address" class="text" aria-required="true" required="required" style='float:right;' size="30" value="" /><p> --> 
        </div> 
        <div class="row form-section"> 
         <label for="pass">Password</label> 
         <span class="input-text"><input class="required-text" type="password" id="pass" value="" name="password" /><span class="required">Required Info</span></span> 
         <!--<input type="password" placeholder="Enter Password" class="text" size="30" autocomplete="off" value="" id="password" name="password" style='float:right;' aria-required="true" required="required" />--> 
        </div> 
        <div class="row row-btn"> 
         <input type="submit" value="Log in" /> 
         <span><a href="/sign-up" class="sign-in">Don't have an account?</a><br><br><a href="/component/com_oms/task,reset-password/view,user/" class="sign-in">Forgot your password?</a>&nbsp;&nbsp;<a href="/resend-activation" class="sign-in">Didn't get your activation email?</a></span> 
        </div> 
       </fieldset> 
       <input type="hidden" value="com_oms" name="option"> 
       <input type="hidden" value="login" name="task"> 
       <input type="hidden" name="return" value=""> 
       <input type="hidden" name="9402951e32acb8d73d4a6972ae540c63" value="1" /> 
</form> 

我知道有問了一些類似的問題,但有沒有似乎是我的搜索帶來的任何明確的答案。任何人都可以闡明發生了什麼?

+0

我能想到的唯一的另一件事是該網站恰好是https。我不確定機械化可以處理加密。 – RMSD

回答

0

想添加爲評論,但不能: 我懷疑是否有少數隱藏的輸入,特別是字符串作爲驗證,以防止CSRF攻擊。您是否嘗試將隱藏字段與電子郵件/密碼一起提交?這可能會幫助你。

+0

嗯...我沒有想到這一點。我會嘗試一下,看看會發生什麼。 – RMSD

+0

所以我試圖改變他們,他們都顯然只讀,除了最後一個。最後一個似乎改變讓我相信這是某種令牌認證?我不知道如何參考它。 – RMSD

+0

您是否嘗試將User-Agent添加到標頭?像這樣: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 /13.0.1')] –