Я пытаюсь зайти на сайт, используя библиотеку запросов python.
Я проверил элементы входа на сайт сайта и посмотрел данные поста. -запрос. Затем из этих элементов я создал словарь полезной нагрузки для использования в пост-запросе.
Код, написанный из этого:
import requests
from bs4 import BeautifulSoup
BASE_URL = "https://sephir.ch/swissmem/user/lernendenportal/"
SEPHIR_LOGIN_URL = "https://sephir.ch/swissmem/user/lernendenportal/index.cfm"
LOGIN_UN = "MAIL"
LOGIN_PW = "PASSWORD"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0'}
def _get_login_name():
return LOGIN_UN
def _get_login_password():
return LOGIN_PW
def login():
payload = {
'email': _get_login_name(),
'passwort': _get_login_password()
}
with requests.session() as s:
# get cfid & cftoken
r = s.get(SEPHIR_LOGIN_URL, headers=headers)
soup = BeautifulSoup(r.content, 'html5lib')
e = soup.find('iframe', attrs = {'id': 'mainFrame'})['src']
cfid = e.split('cfid=')[1].split('&cftoken=')[0]
cftoken = e.split('cftoken=')[1]
payload["cfid"] = cfid
payload["cftoken"] = cftoken
# post request
destination = ("https://sephir.ch/swissmem/user/lernendenportal/login_action.cfm?cfid=" + cfid +"&cftoken=" + cftoken)
r = s.post(destination, data=payload, headers=headers)
return r.text
if __name__ == "__main__":
print(login())
I очевидно, заменил MAIL и PASSWORD с правильными учетными данными для входа в систему
Но я получаю следующее:
<script language="JavaScript">top.location='10_start/frameset_start.cfm?cfid=1724731&cftoken=6eda3a651549f4d2-103B4979-D0C0-5DDF-18F6E1B2C48C1CD4';</script>
Что мне нужно изменить, чтобы попасть на зарегистрированный сайт?