Ответ 1
Попробуйте представленное здесь решение:
-
http://www.unix.com/shell-programming-scripting/131020-using-wget-curl-http-post-authentication.html
# Log in to the server. This can be done only once. wget --save-cookies cookies.txt \ --post-data 'user=foo&password=bar' \ http://server.com/auth.php # Now grab the page or pages we care about. wget --load-cookies cookies.txt \ -p http://server.com/interesting/article.php
Примечание для других, которые могут наткнуться на это:
- Вышеописанное позволяет пользователю вводить ручной вход на сайт, который имеет форму с двумя полями ввода: один с именем
user
и один с именемpassword
- У формы есть атрибут
action
, установленный наhttp://server.com/auth.php
- Форма не использует JavaScript
- Хороший намек на то, что он использует JavaScript, - это атрибут
onsubmit
в элементе формы - Обратите внимание, что это далеко не единственный способ установить атрибуты - используя JavaScript в любом месте страницы, или любой из статически или динамически загружаемых файлов script может изменять элементы формы
- Хороший намек на то, что он использует JavaScript, - это атрибут
- Лучший способ увидеть это - загрузить страницу и провести проверку в реальном времени, например. Firebug для Firefox
Итак, если имена атрибутов и URL-адрес формы различны, вам необходимо соответствующим образом изменить параметры на первую команду wget
.
Если он использует JavaScript, есть вероятность, что он не будет работать вообще - например. в случае примера веб-сайта OPs он использует хеширование JavaScript клиента, поэтому внешний вызов с использованием wget
не устанавливает необходимые поля в форме (в случае сайта Ubuntu, hash_passwrd
).