2014-10-05 70 views
0

我試圖使用python請求登錄到網站。我的代碼如下:如何找出使用公式請求的公式請求

url = "https://program.uffiliates.com/en/Auth/Login" 
    payload = { 
    'uerName': '', 
    'pasword': ''} 

    try: 
     with requests.Session() as s: 
      r = s.post(url, data=payload) 
      print(r.text) 
    except requests.exceptions.RequestException as e: 
     print(e) 
    return 

這不工作,它打印出的登錄頁面的HTML代碼,而不是我應該看什麼時,即時通訊登錄我用公式推錯名字假設IM。在html代碼中,我找到以下內容:

<form action="/en/Auth/LogInAction" method="post"> 
<input id="hiddenUrl" name="hiddenUrl" type="hidden" value="" /> 
<input id="SST_ID" name="SST_ID" type="hidden" value="2" /> 
<input id="serial" name="serial" type="hidden" value="" /> 
<input id="referer" name="referer" type="hidden" value="" /> 

這讓我困惑。有人能告訴我什麼名字,我必須使用「有效載荷」來放入我的用戶名和密碼。

登錄後我該如何導航後端?我應該只使用requests.get與特定的URL,因爲我已經登錄,或者我應該以某種方式使用請求點擊按鈕/鏈接導航?

非常感謝!

回答

0

如果我正確理解你的問題,你需要通過請求POST您的用戶名和密碼,可以登錄了。

首先,在url您發佈的數據應該是形式的行動。不是登錄網址。

其次,在URL中有一些隱藏的輸入,我懷疑服務器會檢查以確認請求來自它承認的HTML。你也需要輸入。

嘗試

url = "https://program.uffiliates.com/en/Auth/LogInAction" 
    payload = { 
    'uerName': '', 
    'pasword': '', 
    'hiddenUrl':'', 
    'SST_ID' : '', 
    'serial':'', 
    'referer':''} 

    try: 
     with requests.Session() as s: 
      r = s.post(url, data=payload) 
      print(r.text) 
    except requests.exceptions.RequestException as e: 
     print(e) 
    return 
+0

但我怎麼能找到失蹤的輸入值?我嘗試了上面的步驟,只留下缺少的輸入,但爲什麼我甚至沒有得到一個錯誤頁面或類似的東西?它只是返回頁面的HTML。謝謝 – zwieback86 2014-10-05 16:11:04

+0

它現在起作用了,我忘記了忘記和用戶名和密碼中的「s」。再次感謝 – zwieback86 2014-10-05 16:19:39