Неверный запрос Происхождение после Python почтового запроса - PullRequest
0 голосов
/ 12 февраля 2020

Я пытался написать программу, которая получает мое школьное расписание, которое заблокировано за экраном входа в систему, однако когда я запускаю свой сценарий python, меня приветствуют:

Sorry, we are unable to complete this request

An error occured while submitting the form:

Invalid Request Origin

Это код, который я написал до сих пор:

import requests

login_url =     'https://WEBSITE/login?page=%2Fhomepage'
timetable_url = 'https://WEBSITE/timetable'

payload = {
    'username': 'USERNAME', 
    'password': 'PASSWORD'
}

with requests.Session() as session:
    post = session.post(login_url, data=payload, verify = True)
    r = session.get(timetable_url)
    print (post.text)

И это html со страницы входа в систему:

<div id="content">
   <form id="login" method="post" action="/login?page=%2Flogin%2F">
      <input type="hidden" name="page" value="/login/" />
      <div class="row collapse">
         <div class="small-12 column">
            <div class="logo">
               <img src="/images/logo.php?logo=skin_logo_login&size=normal" alt="Schoolbox" />
            </div>
         </div>
         <div class="small-12 column">
            <p id="error-msg" class="alert-box alert"></p>
         </div>
         <div class="small-12 column">
            <input type="text" name="username" id="username" placeholder="Username" />
            <input type="password" name="password" id="password" placeholder="Password" />
         </div>
      </div>
      <div class="row collapse">
         <div class="small-12 column">
            <p><a href="/forgotten-password.php">Forgotten your password?</a></p>
         </div>
         <div class="small-12 column">
            <input id="rememberme" type="checkbox" name="rememberme" value="1" />
            <label for="rememberme">Remember me</label>
         </div>
         <div class="small-12 column login-links">
            <input type="submit" name="Submit" value="Login" alt="Login" />
         </div>
      </div>
   </form>
</div>

Как именно я смогу решить эту ошибку, или были бы другие более жизнеспособные решения? Спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

Эта ошибка Invalid Request Origin означает, что ваш источник не соответствует тому, что ограничено сервером. Вы можете попробовать добавить заголовок Origin:, указав timetable_url, но вполне вероятно, что эта страница может быть вызвана только другой страницей на сервере.

...