Вход на этот сайт с запросами ⇐ Python
-
Гость
Вход на этот сайт с запросами
Я пытаюсь автоматизировать вход на этот сайт через запросы, работая с сессией впервые.
https://www.tennisenpadelvlaanderen.be/login
Я хотел бы, например, получить содержимое этой страницы, когда пользователь вошел в систему.
https://www.tennisenpadelvlaanderen.be/ ... n-gegevens?
Я создал логин на сайте, только для этой цели:
Войти: hoegje+pepepepe@gmail.com Пароль: PepePepe
Но когда я пытаюсь выполнить POST на странице входа в систему, я получаю ответ 200 ОК, тогда как на сайте с devtools я получаю 302 редирект, и он перенаправляет меня на первую страницу сайта.
s = Requests.session() #Попробуйте принять файлы cookie cookieData = {'cookies_functional': 'true', 'cookies_analytics': 'true', 'cookies_social': 'false', 'cookies_media': 'ложь', 'cookies_accepted': 'истина'} expires = datetime.datetime.utcnow() + datetime.timedelta(weeks=52) # истекает через 1 год для aCookieKey, aCookieValue в cookieData.items(): AcceptCookiesCookie = Requests.cookies.create_cookie(aCookieKey, aCookieValue, domain='www.tennisenpadelvlaanderen.be', path='/', expires=expires.timestamp()) s.cookies.set_cookie(acceptCookiesCookie) AcceptCookiesCookie = Requests.cookies.create_cookie(aCookieKey, aCookieValue, path='www.tennisenpadelvlaanderen.be/', expires=expires.timestamp()) s.cookies.set_cookie(acceptCookiesCookie) # Файл cookie наборов ответов: INGRESSCOOKIE = 1695315839.247.1714.732149|60903facce0df50e07e804a3a5c147b8 firstResponse = s.get("https://www.tennisenpadelvlaanderen.be/login", headers={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", "referer": "https://www.tennisenpadelvlaanderen.be/", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31"}) печать('=' * 50) распечатать(s.cookies) печать(firstResponse.cookies) печать('=' * 50) распечатать(s.cookies) submitCookies = s.cookies #{originalJsessionId} lfrSessionStateTs = str(int(datetime.datetime.now().timestamp() * 1000)) originalJsessionId = s.cookies.get('JSESSIONID') originalIngressCookie = s.cookies.get('INGRESSCOOKIE') print(f"originalJsessionId {originalJsessionId}") print(f'f1 {firstResponse}') print(f'f2 {firstResponse.cookies}') print(f'f3 {firstResponse.headers}') print(f'f4 {firstResponse.request}') print(f'f5 {firstResponse.text.find("Liferay.authToken")}') i1 = firstResponse.text.find("Liferay.authToken") i2 = firstResponse.text.find(";", i1) Liferay_authToken = firstResponse.text[i1:i2] печать (Liferay_authToken) i1 = Liferay_authToken.find("'") + 1 i2 = Liferay_authToken.rfind("'") pAuthRandom = Liferay_authToken[i1:i2] SecondResponse = s.get("https://www.tennisenpadelvlaanderen.be/login", headers={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", "cache-control": "max-age=0", "cookie": f"INGRESSCOOKIE={originalIngressCookie}; JSESSIONID={originalJsessionId}; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=nl_NL; LFR_SESSION_STATE_20101={lfrSessionStateTs}; cookies_functional=true; cookies_analytics=true; cookies_social=tr уэ; cookie_media=истина; cookie_accepted= истинный", "referer": "https://www.tennisenpadelvlaanderen.be/login", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31"}, куки = отправить куки) print(f's1 {секундный ответ}') print(f's2 { SecondResponse.cookies}') print(f's3 { SecondResponse.headers}') print(f's4 {секундный ответ.запрос}') print(f's5 {секундный ответ.запрос}') # Перенаправляет на: https://www.tennisenpadelvlaanderen.be/ ... venementen # TODO добавить длину содержимого в заголовки: 'content-length': str(contentLength), # строка импорта # символов = string.ascii_letters + string.digits # pAuthRandom = ''.join(random.choice(characters) for _ in range(8)) print(f"pAuthRandom {pAuthRandom}") dataToSubmit = { "_com_liferay_login_web_portlet_LoginPortlet_formDate": f"{lfrSessionStateTs}", "_com_liferay_login_web_portlet_LoginPortlet_saveLastPath": "false", "_com_liferay_login_web_portlet_LoginPortlet_redirect": "", "_com_liferay_login_web_portlet_LoginPortlet_doActionAfterLogin": "false", "_com_liferay_login_web_portlet_LoginPortlet_portletPath": "%2Flogin", "_com_liferay_login_web_portlet_LoginPortlet_login": "hoegje%2Bpepepepe%40gmail.com", "_com_liferay_login_web_portlet_LoginPortlet_password": "PepePepe", "p_auth": pAuthRandom } dataStringToSubmit = '' для aKey, aValue в dataToSubmit.items(): dataStringToSubmit += f'{aKey}={aValue}&' dataStringToSubmit = dataStringToSubmit[:-1] contentLength = len(str(dataStringToSubmit)) # 2 скобки, 4 для отсутствия postReply = s.post("https://www.tennisenpadelvlaanderen.be/login", params={"p_p_id": "com_liferay_login_web_portlet_LoginPortlet", "p_p_lifecycle": "0", "p_p_state": "нормальный", "p_p_mode": "просмотр", "_com_liferay_login_web_portlet_LoginPortlet_javax.portlet.action": "%2Flogin%2Flogin", "_com_liferay_login_web_portlet_LoginPortlet_mvcRenderCommandName": "%2Flogin%2Flogin"}, данные = dataStringToSubmit, заголовки={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", «cache-control»: «max-age=0», «Content-Type»: «application/x-www-form-urlencoded», "cookie": f"INGRESSCOOKIE={originalIngressCookie}; JSESSIONID={originalJsessionId}; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=nl_NL; cookies_functional=true; cookies_analytics=true; cookies_social=true; cookies_media=true; cookies_accepted=true; LFR_SESSION_STATE_ 20101={lfrSessionStateTs }", "origin": "https://www.tennisenpadelvlaanderen.be", 'content-length': str(contentLength), "referer": "https://www.tennisenpadelvlaanderen.be/login", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31", 'sec-ch-ua-mobile': '?0','sec-ch-ua-platform': "Windows", 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': ' ориентироваться', «Sec-Fetch-Site»: «тот же источник», «Sec-Fetch-User»: «?1», «sec-gpc»: «1», «Upgrade-Insecure-Requests»: «1», «Соединение»: «поддержание активности» }, куки=s.cookies) print(f'p1 {postReply}') print(f'p2 {postReply.cookies}') print(f'p3 {postReply.headers}') print(f'p4 {postReply.request}') print(f'p5 {postReply.request}') # Файл cookie наборов ответов: JSESSIONID = DECCD37CCA427785F666166AB6CB085E FinalResponse = s.get("https://www.tennisenpadelvlaanderen.be/ ... venementen", headers={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", "cache-control": "max-age=0", "cookie": f"INGRESSCOOKIE={originalIngressCookie}; JSESSIONID={originalJsessionId}; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=nl_NL; cookies_functional=true; cookies_analytics=true; cookies_social=true; cookies_media=true; cookies_accepted=true; LFR_SESSION_STATE_ 20101={lfrSessionStateTs }", "referer": "https://www.tennisenpadelvlaanderen.be/login", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31"}, куки=s.cookies) печать (финальный ответ) печать(finalResponse.headers) print(finalResponse.text.find('Пепе')) печать(postReply.text) Изменение: добавлен неотредактированный код, поскольку более короткой версии было недостаточно для воспроизведения проблемы.
Я пытаюсь автоматизировать вход на этот сайт через запросы, работая с сессией впервые.
https://www.tennisenpadelvlaanderen.be/login
Я хотел бы, например, получить содержимое этой страницы, когда пользователь вошел в систему.
https://www.tennisenpadelvlaanderen.be/ ... n-gegevens?
Я создал логин на сайте, только для этой цели:
Войти: hoegje+pepepepe@gmail.com Пароль: PepePepe
Но когда я пытаюсь выполнить POST на странице входа в систему, я получаю ответ 200 ОК, тогда как на сайте с devtools я получаю 302 редирект, и он перенаправляет меня на первую страницу сайта.
s = Requests.session() #Попробуйте принять файлы cookie cookieData = {'cookies_functional': 'true', 'cookies_analytics': 'true', 'cookies_social': 'false', 'cookies_media': 'ложь', 'cookies_accepted': 'истина'} expires = datetime.datetime.utcnow() + datetime.timedelta(weeks=52) # истекает через 1 год для aCookieKey, aCookieValue в cookieData.items(): AcceptCookiesCookie = Requests.cookies.create_cookie(aCookieKey, aCookieValue, domain='www.tennisenpadelvlaanderen.be', path='/', expires=expires.timestamp()) s.cookies.set_cookie(acceptCookiesCookie) AcceptCookiesCookie = Requests.cookies.create_cookie(aCookieKey, aCookieValue, path='www.tennisenpadelvlaanderen.be/', expires=expires.timestamp()) s.cookies.set_cookie(acceptCookiesCookie) # Файл cookie наборов ответов: INGRESSCOOKIE = 1695315839.247.1714.732149|60903facce0df50e07e804a3a5c147b8 firstResponse = s.get("https://www.tennisenpadelvlaanderen.be/login", headers={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", "referer": "https://www.tennisenpadelvlaanderen.be/", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31"}) печать('=' * 50) распечатать(s.cookies) печать(firstResponse.cookies) печать('=' * 50) распечатать(s.cookies) submitCookies = s.cookies #{originalJsessionId} lfrSessionStateTs = str(int(datetime.datetime.now().timestamp() * 1000)) originalJsessionId = s.cookies.get('JSESSIONID') originalIngressCookie = s.cookies.get('INGRESSCOOKIE') print(f"originalJsessionId {originalJsessionId}") print(f'f1 {firstResponse}') print(f'f2 {firstResponse.cookies}') print(f'f3 {firstResponse.headers}') print(f'f4 {firstResponse.request}') print(f'f5 {firstResponse.text.find("Liferay.authToken")}') i1 = firstResponse.text.find("Liferay.authToken") i2 = firstResponse.text.find(";", i1) Liferay_authToken = firstResponse.text[i1:i2] печать (Liferay_authToken) i1 = Liferay_authToken.find("'") + 1 i2 = Liferay_authToken.rfind("'") pAuthRandom = Liferay_authToken[i1:i2] SecondResponse = s.get("https://www.tennisenpadelvlaanderen.be/login", headers={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", "cache-control": "max-age=0", "cookie": f"INGRESSCOOKIE={originalIngressCookie}; JSESSIONID={originalJsessionId}; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=nl_NL; LFR_SESSION_STATE_20101={lfrSessionStateTs}; cookies_functional=true; cookies_analytics=true; cookies_social=tr уэ; cookie_media=истина; cookie_accepted= истинный", "referer": "https://www.tennisenpadelvlaanderen.be/login", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31"}, куки = отправить куки) print(f's1 {секундный ответ}') print(f's2 { SecondResponse.cookies}') print(f's3 { SecondResponse.headers}') print(f's4 {секундный ответ.запрос}') print(f's5 {секундный ответ.запрос}') # Перенаправляет на: https://www.tennisenpadelvlaanderen.be/ ... venementen # TODO добавить длину содержимого в заголовки: 'content-length': str(contentLength), # строка импорта # символов = string.ascii_letters + string.digits # pAuthRandom = ''.join(random.choice(characters) for _ in range(8)) print(f"pAuthRandom {pAuthRandom}") dataToSubmit = { "_com_liferay_login_web_portlet_LoginPortlet_formDate": f"{lfrSessionStateTs}", "_com_liferay_login_web_portlet_LoginPortlet_saveLastPath": "false", "_com_liferay_login_web_portlet_LoginPortlet_redirect": "", "_com_liferay_login_web_portlet_LoginPortlet_doActionAfterLogin": "false", "_com_liferay_login_web_portlet_LoginPortlet_portletPath": "%2Flogin", "_com_liferay_login_web_portlet_LoginPortlet_login": "hoegje%2Bpepepepe%40gmail.com", "_com_liferay_login_web_portlet_LoginPortlet_password": "PepePepe", "p_auth": pAuthRandom } dataStringToSubmit = '' для aKey, aValue в dataToSubmit.items(): dataStringToSubmit += f'{aKey}={aValue}&' dataStringToSubmit = dataStringToSubmit[:-1] contentLength = len(str(dataStringToSubmit)) # 2 скобки, 4 для отсутствия postReply = s.post("https://www.tennisenpadelvlaanderen.be/login", params={"p_p_id": "com_liferay_login_web_portlet_LoginPortlet", "p_p_lifecycle": "0", "p_p_state": "нормальный", "p_p_mode": "просмотр", "_com_liferay_login_web_portlet_LoginPortlet_javax.portlet.action": "%2Flogin%2Flogin", "_com_liferay_login_web_portlet_LoginPortlet_mvcRenderCommandName": "%2Flogin%2Flogin"}, данные = dataStringToSubmit, заголовки={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", «cache-control»: «max-age=0», «Content-Type»: «application/x-www-form-urlencoded», "cookie": f"INGRESSCOOKIE={originalIngressCookie}; JSESSIONID={originalJsessionId}; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=nl_NL; cookies_functional=true; cookies_analytics=true; cookies_social=true; cookies_media=true; cookies_accepted=true; LFR_SESSION_STATE_ 20101={lfrSessionStateTs }", "origin": "https://www.tennisenpadelvlaanderen.be", 'content-length': str(contentLength), "referer": "https://www.tennisenpadelvlaanderen.be/login", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31", 'sec-ch-ua-mobile': '?0','sec-ch-ua-platform': "Windows", 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': ' ориентироваться', «Sec-Fetch-Site»: «тот же источник», «Sec-Fetch-User»: «?1», «sec-gpc»: «1», «Upgrade-Insecure-Requests»: «1», «Соединение»: «поддержание активности» }, куки=s.cookies) print(f'p1 {postReply}') print(f'p2 {postReply.cookies}') print(f'p3 {postReply.headers}') print(f'p4 {postReply.request}') print(f'p5 {postReply.request}') # Файл cookie наборов ответов: JSESSIONID = DECCD37CCA427785F666166AB6CB085E FinalResponse = s.get("https://www.tennisenpadelvlaanderen.be/ ... venementen", headers={ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q =0,7", "accept-encoding": "gzip, deflate, br", "accept-language": "en-US,en;q=0.9,nl;q=0.8,fr;q=0.7,de;q=0.6", "cache-control": "max-age=0", "cookie": f"INGRESSCOOKIE={originalIngressCookie}; JSESSIONID={originalJsessionId}; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=nl_NL; cookies_functional=true; cookies_analytics=true; cookies_social=true; cookies_media=true; cookies_accepted=true; LFR_SESSION_STATE_ 20101={lfrSessionStateTs }", "referer": "https://www.tennisenpadelvlaanderen.be/login", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31"}, куки=s.cookies) печать (финальный ответ) печать(finalResponse.headers) print(finalResponse.text.find('Пепе')) печать(postReply.text) Изменение: добавлен неотредактированный код, поскольку более короткой версии было недостаточно для воспроизведения проблемы.