우선 프로그래밍 방침은 대부분 서버 측 스크립팅으로 제한되어 있으며, 웹 사이트를 구문 분석하려고 할 때 처음 사용하는 것이므로 내 질문에 어리 석다면 용서해주십시오.파이썬에서 리디렉션을 통해 세션 ID를 얻는 중
다른 사이트를 통한 인증이 필요한 웹 사이트 (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를 가져 오는 것입니다.
위 (sessionid를 제거 태그를 수정) 된 스크립트의 출력 :
RequestsCookieJar[Cookie ealocale=en-us for .battlefield.com/, Cookie JSESSIONID=1DF14B ... 3DAF.eanshprdaccounts38 for signin.ea.com/p/]
하지만이 sessionID와 올바른 생각하지 않습니다. 내가 수동으로 로그인 한 후 battlefield.com 페이지에서 크롬 검사기를 사용하여 sessionID
을 검사 할 때, 세션의 이름을 다른 것으로 보인다과는 완전히 다른 값이 있습니다
그래서 내 질문입니다, BTLF_SESSID
을 얻으려면 어떻게해야합니까?
미리 감사드립니다.
요청 상태 코드를 확인하고'requests.get ('http : // ...', allow_redirects = False) '를 시도해보고 로그인 서비스에서받은 응답을 검사 할 가치가 있습니다. – user3012759
@ user3012759 결과는 다음과 같습니다. allow_redirects = False 일지라도 – theManag3R
@ user3012759 응답 코드는 req1 : 302, req2 : 200입니다. 유효하지 않은 자격 증명을 입력하고 쿠키를 지우더라도 req1에 대한 응답은 302입니다. 이해할 수 없습니다. – theManag3R