Как мы можем отправить пароль на сервер и загрузить его веб-страницу и подстраницу, которые защищены?
Поскольку этот сайт часто обновляется, мне приходится повторно открывать его в браузере и вводить пароль для доступа к содержимому. Есть ли способ (например, wget, curl, lnyx и т. д.) автоматизировать этот процесс?
Этот веб-сайт не имеет имени пользователя, а требует только ввода пароля в форме. Затем он направит вас на дополнительную веб-страницу с различным содержимым.
Часть исходного кода с этого сайта:
<form name="loginform" id="loginform" action="https://serveraddress/?password-protected=login" method="post">
<p>
<label for="password_protected_pass">Password<br />
<input style="width:290px" type="password" name="password_protected_pwd" id="password_protected_pass" class="input" value="" size="20" tabindex="20" /></label>
</p>
<p class="submit">
<input style="background-color: #782c43" type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Log In" tabindex="100" />
<input type="hidden" name="password_protected_cookie_test" value="1" />
<input type="hidden" name="password-protected" value="login" />
<input type="hidden" name="redirect_to" value="https://serveraddress/introduction/" />
</p>
</form>
и он использует JavaScript для получения элементов:
try {
document.getElementById('password_protected_pass').focus();
} catch(e) {}
if (typeof wpOnload=='function') wpOnload();
try {
Typekit.load({ async: true });
} catch(e) {}
Я изучил ряд вопросов о переполнении стека и других местах и пробовал разные методы, такие как wget с различными параметрами: --user, --post-data, --password, --save-cookies, --keep -session-cookies или curl с аналогичными функциями, или lynx. Но ни один из них не работает (введите пароль в форму и скачайте исходники).
Эти вопросы о переполнении стека не помогают, но их можно найти по адресу пример1,пример,пример3,example4
Например, у меня это не работает.
wget --save-cookies cookies.txt \
--keep-session-cookies \
--post-data 'user=foo&password=bar' \
--delete-after \
http://someserver/
wget --load-cookies cookies.txt \
http://someserver/