login_username
и login_password
- не все необходимые параметры.Если вы посмотрите на запрос /login/
POST в инструментах разработчика браузера, то увидите, что отправляется также _token
.
Это то, что вам нужно проанализировать излогин HTML .Таким образом, поток будет следующим:
- получить
https://jadepanel.nephrite.ro/login
страницу - HTML, проанализировать его и извлечь
_token
значение - сделать запрос POST с логином, пароль и токен
- для входа на сайт используйте авторизованный сеанс
Для анализа HTML мы можем использовать BeautifulSoup
(есть и другие варианты,конечно):
from bs4 import BeautifulSoup
login_html = session.get(loginurl).text
soup = BeautifulSoup(login_html, "html.parser")
token = soup.find("input", {"name": "_token"})["value"]
payload = {
'login_username': 'username',
'login_password': 'password',
'_token': token
}
Полный код:
import time
import requests
from bs4 import BeautifulSoup
# This URL will be the URL that your login form points to with the "action" tag.
loginurl = 'https://jadepanel.nephrite.ro/login'
# This URL is the page you actually want to pull down with requests.
requesturl = 'https://jadepanel.nephrite.ro/clan/view/123'
with requests.Session() as session:
login_html = session.get(loginurl).text
soup = BeautifulSoup(login_html, "html.parser")
token = soup.find("input", {"name": "_token"})["value"]
payload = {
'login_username': 'username',
'login_password': 'password',
'_token': token
}
post = session.post(loginurl, data=payload)
time.sleep(3)
r = session.get(requesturl)
print(r.text)