Я пытаюсь войти на сайт, используя запрос в Python 3. К сожалению, я не могу это сделать.Метод отправки Python с запросами
Это информация, которую я получаю от запроса авторизации:
Response Headers:
Cache-Control:no-cache
Connection:close
Content-Encoding:gzip
Content-Type:application/json
Заголовки запросов:
Accept:application/json, text/plain, */*
Content-Type:application/json;charset=UTF-8
Referer:fffff
Запрос Payload:
{email: "xxx", password: "yyy", _token: "zzz"}
Мой код:
with requests.Session() as x:
url = 'website'
USERNAME = "xxx"
PASSWORD = "yyy"
token = "zzz"
x.get(url)
x.post(url, data={'email': USERNAME, 'password': PASSWORD, '_token':token},
headers={'Referer':"fffff"})
page = x.get("some_page_I_have_access_after_login")
print(page.content)
Единственный результат для последнего «печати» есть «Пожалуйста, войдите в ....»
Можете ли вы помочь мне с этим?
редактировать:
У меня есть изменения кода на:
url = 'url'
USERNAME = "xxx"
PASSWORD = "yyy"
token = "fff"
headers = {'Content-type': 'application/json', 'Accept': 'text/plain', 'Referer':'cccc'}
data = {'email': USERNAME, 'password': PASSWORD, '_token':token}
x = requests.get(url)
w = requests.post(url, data=data, headers=headers)
print(w.status_code)
page = requests.get("some_url_I_want_access")
page.raise_for_status()
Теперь у меня есть четкий статус. Для ш (логин действия) У меня есть статус 200. И есть проблема, потому что, когда я изменил свое имя я еще получил 200 так, что означает, что я не могу войти в
На странице я получил.: 401 Client Error: Несанкционированное для URL: "some_url_I_want_access"
вы уверены, что вы можете отправить учетные данные с помощью JSON? Обычно он отправляется с кодировкой формы. – Andrey
Я этого не знаю, но странно, что я изменил строку x.post (....) на w = x.post (...) и добавлю строку print (w.content) в следующей строке , Кажется, что я зарегистрирован, потому что тогда я получаю html my_page. К сожалению, я по-прежнему получаю ту же ошибку для последнего заявления «print». – Maciejjy
Хорошо, я сделал прогрессы. Я думаю, что знаю, где ошибка. Когда я запускаю свою программу, тело запроса: email = aaa% 40ccc.com & _token = xxx & password = yyy Но когда я обрабатываю запрос рабочего браузера, тело запроса: {"email": "[email protected]", "password" : «yyy», «_ токен»: «xxx»} Это не совсем то же самое, и когда я копирую эту строку из рабочего запроса и вставляю ее в веб-отладчик, мой запрос от python работает. Мне просто нужно написать всю эту строку в Python надлежащим образом. Это может быть трудно для меня. – Maciejjy