Механизировать не следует перенаправления после входа на сайт

У меня было много проблем с получением того, что должно быть довольно простым сценарием входа в систему для работы на определенном веб-сайте. Мой код работает на другом сайте (Reddit), но он не работает на:

https://eo-sso-idp.eo.esa.int/idp/umsso20/login

После отправки формы и распечатки ответа браузер, похоже, сидит на странице с HTML, которую мой веб-обозреватель "не может найти", несмотря на то, что он сохранен в локальном файле HTML (скопирован и вставлен из вывода консоли в текстовый файл блокнота) с имя пользователя и пароль скопированы в соответствующие поля формы. Он не следует перенаправлению, которое должно перенести его на страницу администратора.

Это мой код:

# Create a new mechanize Browser instance
br = mechanize.Browser()

# Set browser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_redirect(mechanize.HTTPRedirectHandler)
br.set_handle_refresh(mechanize.HTTPRefreshProcessor(), max_time=1)

# Open the login URL
br.open("https://eo-sso-idp.eo.esa.int/idp/umsso20/admin")
for link in br.links():
    if link.text == "Login":
        br.follow_link(link)

# Select the first form
br.select_form(nr=0)
# Enter the username and password
br["cn"] = username
br["password"] = password
# Submit the form
response = br.submit()
print response.read()

(Причина, по которой я настроил браузер на переход по ссылке на страницу входа в систему, а не на переход к ней напрямую, заключается в том, что на странице создается уникальная строка, которая добавляется к URL-адресу входа в систему)

В дополнение к механизации я попытался использовать следующий код с твиллом:

browser = get_browser()
browser.go("https://eo-sso-idp.eo.esa.int/idp/umsso20/admin")
browser.follow_link("Login")
fv("1", "cn", username)
fv("1", "password", password)
submit("1")
showlinks()

Но этот код выдает ошибку:

MissingSchema: Invalid URL u'/idp/umsso20/login?fn=T2dWam0zYUZLVTh5Z3dwWGNMZmlKdz09&act=NWNDNlZhNnAwaEUzbFVGV3FZaStLUT09&pars=dEN6SzZDY3hsQmtWYjNWMDhjdWRXTW1ON2FFSFFYK2JvemtXSFczMFRuRWtGQjgwOWRjVFRsQVZUVlZMeDNmd0VDM25hSkNvWGZ1NkI0NjJWcGFNY0ZaNlFSN2JqL3RFUTJYM3NIRWdvbWJGVmo1bmhGNElYV2YyY2l4NmNIcWJZeVlLN2NFYnQrTzNaS2luRzJ2UTlnPT0ie': No schema supplied. Perhaps you meant http:///idp/umsso20/login?fn=T2dWam0zYUZLVTh5Z3dwWGNMZmlKdz09&act=NWNDNlZhNnAwaEUzbFVGV3FZaStLUT09&pars=dEN6SzZDY3hsQmtWYjNWMDhjdWRXTW1ON2FFSFFYK2JvemtXSFczMFRuRWtGQjgwOWRjVFRsQVZUVlZMeDNmd0VDM25hSkNvWGZ1NkI0NjJWcGFNY0ZaNlFSN2JqL3RFUTJYM3NIRWdvbWJGVmo1bmhGNElYV2YyY2l4NmNIcWJZeVlLN2NFYnQrTzNaS2luRzJ2UTlnPT0ie?

Похоже, что метод POST формы пытается отправить браузер на что-то, что на самом деле не URL.

Любая помощь приветствуется

0 ответов

Другие вопросы по тегам