Как скачать файл за аутентификацией через Wget или cURL
Возможный дубликат:
Wget страницу, которая требует входа в систему
Я хочу скачать файл с http://mbr.nlm.nih.gov/Download/MetaMapped_Medline/2011/. Однако, чтобы скачать файл, мне нужно ввести пароль и имя пользователя, которые принимаются через форму HTTP.
Есть ли способ, с помощью которого я могу ввести пароль / имя пользователя с помощью командной строки?
2 ответа
Вы можете войти в свой браузер (с предпочтительной опцией "Запомнить меня"), экспортировать cookie-файлы браузера ( для Firefox 3.x, здесь для этого есть код Python) и использовать --load-cookies с wget.
wget
а также curl
способны обрабатывать только базовую HTTP-аутентификацию, но не аутентификацию на основе пользовательских форм.
Что вам нужно сделать, это сначала изучить HTML-код формы входа в систему, чтобы найти элементы формы, которые использует система входа в систему, и форму. action
затем используйте curl
или же wget
отправить запрос в нужном формате (POST или GET) на форму action
URL-адрес, содержащий переменные входа в систему и данные.
Этот запрос должен вернуть cookie, содержащий ключ сеанса или что-то подобное. Отправка этого cookie вместе с любыми будущими запросами должна позволить вам получить доступ к страницам на сайте, которые требуют, чтобы вы вошли в систему.