在Python中发送登录请求

时间:2017-05-29 23:22:29

标签: 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服务器发送登录信息,然后保留登录信息,以便我可以回答问题,这是另一次。我仍然需要知道如何发送登录信息。任何帮助,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分: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...")

你从那里做什么取决于你...

答案 1 :(得分:0)

尝试以下代码:

import webbrowser
webbrowser.open("https://ixl.com")

loginData = {
    "qlusername": "admin",
    "qlpassword": "12345"
}

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