Python POST-запрос гласит "Недопустимо!" - PullRequest
0 голосов
/ 22 января 2020

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

import requests

payload = {
    "username": "",
    "pwd": "",
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
}

with requests.Session() as s:
    p = s.post('http://www.bloomingtonsouth.org/plus/login.php', data=payload)
    print(p.text)

    r = s.get('http://www.bloomingtonsouth.org/plus/student.php')
    print(r.text)

Вывод: «Недопустимо!

Недопустимо!

Не удалось найти соответствующее представление запрошенного ресурса на этом сервере. Mod_Security сгенерирована ошибка.

Недопустимо!

Недопустимо!

Не удалось найти соответствующее представление запрошенного ресурса на этом сервере. Эта ошибка сгенерирована Mod_Security.

"

Что я делаю не так?

Редактировать 1:

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.9",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "en-US,en;q=0.9",
        "Cache-Control": "max-age=0",
        "Connection": "keep-alive",
        "Host": "bloomingtonsouth.org",
        "Referer": "http://bloomingtonsouth.org/plus/login.php",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"

        }

url = "http://www.bloomingtonsouth.org/plus/login.php"
payload = {"username": "", "password": "", "submitted":"TRUE"}
post = requests.post(url, headers=headers, data=payload)

r = requests.get('http://www.bloomingtonsouth.org/plus/student.php')
print(r.text)

Я попробовал это, используя заголовки, которые я нашел в браузере, но он все еще не работает.

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Если у вас есть полный URL для входа в систему, вы можете использовать этот онлайн-инструмент, который преобразует URL в python запрос:

https://curl.trillworks.com/

Если вы не Не понимаю, пожалуйста, разместите на сайте полный URL.

0 голосов
/ 22 января 2020

User-agent должен быть заголовком, а не в полезной нагрузке.

login()
def login():
    headers = headers - {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"}
    url = "http://www.bloomingtonsouth.org/plus/login.php"
    payload = {"username": "", "pwd": ""}
    post = requests.post(url, headers=headers, data=payload)

попробуйте этот код для входа в систему и дайте мне знать, если он не работает.

...