Прежде всего, мой фон программирования в основном ограничивается сценарием на стороне сервера, и это почти в первый раз, когда я пытаюсь разобрать веб-сайт, поэтому, пожалуйста, простите меня, если мой вопрос нелепо.Получение идентификатора сеанса через перенаправление в Python
Я пытаюсь извлечь некоторые данные с сайта (battlefield.com), который требует аутентификации через другой сайт.
У меня есть следующий сценарий:
import requests
url_login = "https://signin.ea.com/p/web/login?execution=e1567523006s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fredirect_uri%3Dhttps%253A%252F%252Fwww.battlefield.com%252Flogin_check%26state%3D5223dcd1-5f9c-47a1-940c-1d6b306454f9%26response_type%3Dcode%26client_id%3DBattlefield-CoreWeb"
url_bf = "https://www.battlefield.com/companion/career/mypersonalid/bf1"
s = requests.Session()
payload = {
"username": "myemail",
"password": "mypassword"
}
req1 = s.post(url_login, data=payload)
req2 = s.get(url_bf)
print (s.cookies)
Когда я делаю этот процесс вручную, когда я иду в battlefield.com, нажмите войти, а затем страница перенаправляет меня на url_login
странице. Затем я отправляю полезную нагрузку, и страница перенаправляет меня обратно на страницу битвы.
То, что я пытаюсь сделать, - это получить идентификатор сеанса с страницы боя после успешного входа в систему.
Выход скрипта выше (модифицировал SESSIONID и удаленные теги):
RequestsCookieJar[Cookie ealocale=en-us for .battlefield.com/, Cookie JSESSIONID=1DF14B ... 3DAF.eanshprdaccounts38 for signin.ea.com/p/]
Но я не думаю, что это SESSIONID правильно. Когда я вручную проверить sessionID
с помощью Chrome Inspector со страницы battlefield.com после входа в систему, имя сессии, как представляется, отличается и имеет совершенно другое значение:
Так что мой вопрос, как я могу получить BTLF_SESSID
?
Заранее спасибо
проверьте коды кодов запроса, также может быть полезно попробовать 'request.get ('http: // ...', allow_redirects = False)' и проверить эти ответы от службы входа – user3012759
@ user3012759 Результат: то же самое, даже с allow_redirects = False – theManag3R
@ user3012759 Коды ответов: req1: 302, req2: 200. Но ответ для req1 равен 302, хотя я ввожу недопустимые учетные данные и очищать файлы cookie ... Я не понимаю – theManag3R