2017-01-22 88 views
0

所以我一直在嘗試一段時間來登錄這個網站http://dom-site-0979-grgwrggtkj.dynamic-m.com:171/index.html,我可以提供用戶名和密碼,因爲這些都不是祕密(隱私並不重要)。所以,我至今寫的代碼是:python請求登錄並在登錄後獲取url

import requests 
def remote_login(): 
    url = 'http://dom-site-0979-grgwrggtkj.dynamic-m.com:171/index.html' 
    payload = {'txtUserId': 'zach26276', 
       'txtPwd': 'password'} 

    p = requests.post(url, data=payload) 

    print(p.text) 
    print(p.url) 

我用小提琴手嘗試和看到的輸出,但我看到的是,即使它應該只使用表單數據加密的SSL東西。我已經嘗試了隱藏的輸入無濟於事。我認爲這個問題可能是因爲它使用YUI JavaScript來解析表單數據並進行身份驗證,但表單方法仍然是POST,因此請求應該正常工作?

什麼我得到的請求是錯誤500:

<HTML> 
<BODY> 
<HEAD><TITLE>SYSTEM ERROR</TITLE></HEAD> 
<H1>INTERNAL ERROR</H1> 
The operation cannot be completed. 
</BODY> 
</HTML> 
+0

您是否嘗試使用Chrome網絡工具查看發佈請求? – hansaplast

+0

我試圖分析它,但是當我點擊登錄按鈕時,它告訴我用戶名/密碼不正確,甚至沒有發帖 – hansaplast

回答

1

如果你看一下請求你將看到帖子的網址爲「http://dom-site-0979-grgwrggtkj.dynamic-m.com:171/login.json」,也是身體像:

{ 'UNAME': 'zach26276', 'PWD': '密碼'}

我想你也需要設置頁眉內容TY pe到json。 檢查requests.Session(),如果你想做一個機器人導航它真棒。

此外,該網站返回一個錯誤的用戶名/密碼,但答案HTTP告訴用戶已經在,不好調試。

+0

我已經使用會話,但主要用它來做POST,我猜想會話對於標題設置更好。謝謝,對我的垃圾調試技巧感到抱歉 –

+0

我改變了它在json做的請求,我在登錄後有效地獲得有效的會話密鑰,但獲取url的部分無法正常工作。我是否需要查看重定向或其他內容? –

+1

allow_redirects = True 我認爲它會完成這項工作。 – ZHAJOR