Вы должны установить куки.
Я пытался разными способами получить куки с сайта, но, похоже, он дает недействительные куки.
Однако вы можете открыть Сеть в своем браузере (если вы используете Chrome, нажмите Cntrl + E, если вы используете Firefox, нажмите Cntrl + Shift + E), а затем перейдите на страница входа , чтобы найти действительный файл cookie PHPSESSID для запроса на вход в Cookies .
Затем вы можете вставить значение cookie PHPSESSID в коде ниже:
from requests import Session
login_url = "https://www.hackthissite.org/user/login"
page_url = "https://www.hackthissite.org/missions/prog/2/index.php"
PHPSESSID = f"PHPSESSID=2r4t6qg89b8k89b871q4b6q5i3" # Cookie example. Enter yours.
login_headers = {
"Host": "www.hackthissite.org",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://www.hackthissite.org/missions/prog/2/index.php",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": PHPSESSID,
"Content-Length": "62",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
"DNT": "1",
}
login_data = {
"username": "Your username",
"password": "Your password",
"btn_submit": "Login",
}
page_headers = {
"Host": "www.hackthissite.org",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://www.hackthissite.org/missions/prog/2/index.php",
"Connection": "keep-alive",
"Cookie": "PHPSESSID=2r4t6qg8eb8j89b871q4b6q0i3",
"Upgrade-Insecure-Requests": "1",
"DNT": "1",
}
page_data = {
"solution": "Dontevenknow",
}
with Session() as session:
session.post(login_url, headers=login_headers, data=login_data)
response = session.post(page_url, headers=page_headers, data=page_data)
print("Authenticated:", "Login Required" not in response.text)
У меня работает нормально, я тестировал Firefox и Chrome.