1

Возможный дубликат:
Wget страницу, которая требует входа в систему

Я хочу скачать файл с http://mbr.nlm.nih.gov/Download/MetaMapped_Medline/2011/. Однако, чтобы загрузить файл, мне нужно ввести пароль и имя пользователя, которые принимаются через форму HTTP.

Есть ли способ, с помощью которого я могу ввести пароль / имя пользователя с помощью командной строки?

2 ответа2

6

wget и curl способны обрабатывать только базовую HTTP-аутентификацию, но не аутентификацию на основе пользовательских форм.

Что вам нужно сделать , это первое изучение HTML формы входа , чтобы найти элементы формы , что система Логин использует и action формы, а затем использовать curl или wget , чтобы послать запрос в нужном формате (POST или GET) в URL-адрес action формы, содержащий переменные входа и данные.

Этот запрос должен вернуть cookie, содержащий ключ сеанса или что-то подобное. Отправка этого файла cookie вместе с любыми будущими запросами должна позволить вам получить доступ к страницам на сайте, которые требуют, чтобы вы вошли в систему.

1

Вы можете войти в свой браузер (с предпочтительной опцией "Запомнить меня"), экспортировать куки-файлы браузера (для Firefox 3.x, здесь для этого есть код Python) и использовать --load-cookies с wget.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .