Как скачать файл за аутентификацией через 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 вместе с любыми будущими запросами должна позволить вам получить доступ к страницам на сайте, которые требуют, чтобы вы вошли в систему.

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