bet365登录请求

时间:2018-02-19 19:57:20

标签: python authentication http-authentication

我正在尝试创建一个用于登录bet365的脚本。我在登录时暂停了。 POST请求的参数是:

LOGIN_URL = "https://mobile.bet365.it/"
{
   DeviceId : "..."
   Platform : "..."
   txtPassword: "..."
   tktTKN: "..."
   txtType: "..."
   txtUsername: "..."
}

所以我编写了这个payload来尝试访问登录页面:

payload = {
    "txtUsername": UTENTE,
    "txtPassword": PASSWORD,
    "txtTKN": authenticity_token,
    "platform": platform,
    "txtType": txtType
}
LOGIN_URL = "https://mobile.bet365.it/"
result = session_requests.post(LOGIN_URL, data = payload, headers = dict(referer = LOGIN_URL))

我完全确定这些值是正确的(除了platform和txtType,因为我不明白它们是什么,所以我复制了我登录时总是设置的值)。 但是,如果我试着检查一下我是否已登录,我意识到我不是。

2 个答案:

答案 0 :(得分:0)

Chrome告诉我要发布的登录页面是此页面:

https://mobile.bet365.it/members/lp/default.aspx

为什么你认为这是你列出的网址?

答案 1 :(得分:0)

(我认为没有明显的"登录失败"登录页面中存在的消息) 通常您登录的事实是"已保存"在一个或多个cookie(* sessionID)中,我要做的是在"登录请求"的响应中寻找它们。并将它们添加到以下请求中。

我的一些代码中有一个片段给你一般的想法

import httplib2
headers = {
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'accept-encoding': "identity", ...
        }
payload = { ... }
http_client = httplib2.Http()
response, content = http_client.request(
                    login_url,
                    "POST",
                    urllib.urlencode(payload),
                    headers)
# ...
cookie = response.get("set-cookie")
if cookie:
    headers['Cookie'] = cookie  
# ...
 response, content = http_client.request(
                    other_url,
                    "POST",
                    urllib.urlencode(payload),
                    headers)