Я ударился головой о стену ... может ли кто-нибудь помочь мне обернуть мой мозг вокруг получения запроса на работу?Запросы на Python - путаница POST
Я пытаюсь выполнить работу на веб-сайте, но сначала мне нужно пройти регистрацию ... Я был автором Google, но до сих пор я не могу разобраться. Я супер n00b для веб-материалов, но имею некоторый опыт работы с python в Maya.
Вот то, что я до сих пор
import requests
login_url = 'https://example.com/examplelogin
login_payload = {'j_username':'myusername', 'j_password':'mypassword'}
with requests.Session() as s:
r = s.post(login_url, data = login_payload)
Вот форма я пытаюсь заполнить:
<form id="login" action="/idp/Authn/UserPassword" method="post">
<p class="customError"></p>
<section>
<input id="username" class="form-element form-field" name="j_username" type="text" value="" placeholder="email address"></section>
<section>
<input id="password" class="form-element form-field" name="j_password" type="password" value="" placeholder="password"></section>
<button class="form-element form-button" type="submit">Login</button>
</form>
для r.status_code
я получаю 200
но r.text
это только Войти страницу HTML. .. Это меня не вводит и не приводит ...
Что мне не хватает?
Сайт не имеет API, доступного пользователю (инструкторы в учреждении). У меня есть версия сценария Selenium, но когда наступает время для выполнения работы (размещение оценок и комментариев от excel на сайте), она чрезвычайно медленная (2-3 мин для 25 классов). Я надеюсь найти более быстрое решение этого, и мне было предложено напрямую обратиться к формам. Может быть, есть другие решения, о которых я не знаю ...? –
Вы должны взглянуть на http://phantomjs.org/, это ускорит процесс, и вам не понадобится перестраивать ваши скрипты.Также возможно, что с запросами это будет невозможно. Я столкнулся с тем же вопросом пару месяцев назад, пытаясь автоматизировать некоторые задачи на работе. –
Первоначальное тестирование с использованием phantomjs представляется многообещающим. Я не смогу сделать «настоящий» тест до следующей недели ... но пока это работает быстрее. Это привело к появлению нескольких ошибок, требующих 'time.sleep()', чтобы все работало ... но я достаточно доволен этим, и я продвигаюсь дальше. Спасибо за помощь. –