2017-05-29 144 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