2015-10-20 25 views
1

我最初使用正確的憑證使用請求登錄到網站。然後我嘗試了一些無效的用戶名和密碼。我仍然得到了200的響應狀態。然後,我知道響應狀態會告訴您相應的網頁是否已被擊中。所以現在我的疑問是如何驗證我是否真的使用正確的憑據登錄到網站如何驗證我們是否使用python中的請求正確登錄到網站?

回答

0

HTTP狀態碼通常用於瀏覽器,或者用於客戶端與服務器通信的API。對於普通的網站,使用語義錯誤信息的狀態代碼並不是很有用。過度使用狀態代碼甚至可能導致瀏覽器無法正確呈現響應。

因此,對於普通的HTML響應,您通常會期望代碼200幾乎適用於所有內容。

爲了檢查錯誤,您將不得不從HTML響應中檢查應用程序特定的錯誤輸出。找出這些跡象的一個好方法就是嘗試使用無效憑證從瀏覽器登錄,然後檢查呈現的輸出。或者許多網站在登錄後也會顯示某種用戶菜單,請檢查其是否存在以確定您是否登錄。如果登錄不存在,則登錄可能失敗。

0

網站響應的狀態代碼完全取決於它們的實現;如果您嘗試登錄到Web服務,則更有可能獲得非200響應。如果登錄嘗試在普通網站上產生了非200響應,那麼它需要一個特殊的處理程序,而不是200頁的正常頁面提示(可能是人類用戶,而不是腳本)指示登錄失敗的視覺提示。

如果您登錄的網站無論成功還是失敗都會返回200,您可能需要使用lxml或BeautifulSoup之類的東西來查找成功或失敗的跡象(這可能是您已經使用的工具無論你登錄訪問什麼)。

0

一個簡單的例子如下所示:

p_session = requests.Session()  
signin_response = p_session.post(signin_url, 
           data=logininfo, 
           headers=headers, 
           verify=False,#verify ssl 
           ) 
#print out the response content, which is in the form of dictionary 
print signin_response.content 

#according to the output, you may have ideas to judge whether login or not, according to the keys 
#one way to fetch the value of key is: 
print signin_response.json()[u'reply_msg']#assume reply_msg is one of the keys