


Ошибка "405 Not Allowed" при попытке авторизоваться на сайте через скрипт на Python
Пишу парсер с авторизацией, но я так понял сайт блокирует POST запрос и я не могу этого сделать, что делать?
Код:
import requests
session = requests.Session()
login = "my_login"
password = "my_password"
authUrl = "https://login.feature.fm/login/"
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0'
}
data = {
'username': login,
'password': password
}
response = session.post(authUrl, data=data, headers=headers).text
print(response)
Вот сама ошибка:
C:\Users\PC\Scripts\ParserFuture>python main.py
<html>
<head><title>405 Not Allowed</title></head>
<body>
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.23.3</center>
</body>
</html>
Заходишь на сайт в браузере, нажимаешь F12, авторизуешься и во вкладке "Сеть" внимательно изучаешь, какие именно заголовки (включая куки) и какое тело запроса браузер передаёт серверу и что именно сайт возвращает браузеру.
И воспроизводишь это в Python-запросе.
Для нормально сделанного сайта недостаточно единственного 'User-Agent' и передачи только логина / пароля.
Возможно, сайт требует использование определенного типа запроса или заголовков. Попробуйте добавить заголовок "Content-Type" с значением "application/x-www-form-urlencoded" и изменить запрос на использование метода "GET" или "PUT". Также может помочь использование библиотеки Selenium для автоматизированного взаимодействия с сайтом, которая может обойти блокировки на уровне браузера.