2017-05-29 87 views
0

所以我有這樣的代碼:發送的登錄請求在Python

import requests 

loginData = { 
    'sisername': 'cool username', 
    'sipassword': 'cool password' 
} 

with requests.session() as s: 
    s.post('http://www.ixl.com/signin', data=loginData) 
    response = s.get('http://www.ixl.com') 
    print(response.text) 

我試圖發送一個登錄到服務器IXL,事後保留登錄信息,這樣我可以回答的問題,這是另一次。我仍然需要知道如何發送登錄信息。任何幫助,將不勝感激。謝謝!

回答

0

你正在提交到錯誤的頁面,並帶有錯誤的參數。如果您檢查網頁上的表格,你會看到,實際提交去https://eu.ixl.com/signin/ajax/page,所以嘗試使用:

loginData = { 
    'username': 'cool username', 
    'password': 'cool password', 
} 

with requests.session() as s: 
    res = s.post('https://eu.ixl.com/signin/ajax/page', data=loginData) 
    print(res.text) 

現在,你希望你以後做什麼登錄是另外一回事了。你可能必須解析res.text才能看到你回來的東西。至於我可以看到,它在一個JSON格式的響應,因此您可以輕鬆地檢查響應:

loginData = { 
    'username': 'cool username', 
    'password': 'cool password', 
} 

with requests.session() as s: 
    res = s.post('https://eu.ixl.com/signin/ajax/page', data=loginData) 
    data = res.json() 
    if data.get("signinPageError", "false") == "true": 
     print("Login failed: {}".format(data.get("errorMessage", "Unknown error"))) 
    else: 
     print("Login successful? I don't know, I don't have valid credentials to check...") 

你從那裏做什麼,完全由你...

+0

謝謝,我當我回家時會嘗試這個。 –

+0

我試過了,它似乎沒有工作。每次我收到相同的錯誤。如果您有興趣進一步幫助我,請聯繫[email protected]。謝謝:) –

+0

檢測登錄失敗肯定會起作用,當你提供有效憑證時會發生什麼情況,以供您查找。就我們在​​SO可以幫助你而言,我沒有興趣提供私人無償(或爲此付費)的工作。 – zwer