LINUX.ORG.RU

Выкачивание набора файлов с ресурса, на который вначале требуется сделать вход через логин-пароль


0

1

Здравствуйте!


Как бы вы решали такую задачу:

Есть WEB-ресурс, с которого надо скачать заранее известный набор файлов. Проблема в том, что на ресурс требуется вначале залогиниться через формочку, введя логин-пароль.

Поэтому напрямую файлы через WGET не скачаешь. Что можно сделать в такой ситуации? У меня пока два направления:

1. Замутить что-то на Firefox с Greasymonkey. Проблема в том, что неясно, как через JavaScript скачивать файлы. Генерировать GET-запрос? Но даже если это сделать, то для каждого загружаемого файла придется вручную жмякать «Сохранить» - «Ок».

2. Зайти через Firefox вручную, потом выдрать сессию, пихнуть ее в WGET и скачать файлы. Как-то замороченно получается честногря, и не уверен что одними сессиями можно обойтись для подмены браузера на WGET.

Вопрос. По какому направлению двигаться? Есть ли еще какие пути решения?

★★★★★

И даже скачивать, сможет сам. Только придется User Agent изменить.

XoFfiCEr ★★☆☆
()

wget --load-cookies=«путь к кукам» ....

april
()
Ответ на: комментарий от XoFfiCEr

Вопрос авторизации на сайтах обсуждался ранее на стороннем форуме.

На каком?

Скрипт на python.

Чем обусловлен выбор python? В PHP возможна та же самая функциональность?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Чем обусловлен выбор python? В PHP возможна та же самая функциональность?

Ты чо, потсан,не знаешь, что ПХП - это не круто?

r_asian ★☆☆
()

Смотришь(например с помощь firebug или тупо в html-коде) куда отправляяется форма и какие у неё поля, затем, пишешь скрипт, использующий curl, который

1. Пытается скачать ресурс, использую куки из файла

2. Если скачивание не удалось (по ряду формальных признаков), посылаешь POST туда же, куда и форма авторизации, с полями, заполненными правильными данными для авторизации. Только не забудь ключик поставить, чтобы редиректам следовал. Полученные куки сохраняешь в файл.

3. Снова пробуешь п.1

r_asian ★☆☆
()

Обычно кукисов достаточно, еще можно подделать UA, при необходимости и реферер. Юзал CURL, вызываемый из php, удобно и красиво.

Можно имитировать вход на сайт, это если выдирать файлы с него надо регулярно, а сессия живет, допустим, сутки. Если html-форма простая, можно отправлять CURL-ом нужный запрос, если не получается, можно перехватить запрос браузера и рассмотреть, какие там поля есть, и отправлять такой же.

amomymous ★★★
()

CURL, если речь идёт о web-development.

VirRaa ★★★
()

Я делаю так:

0. Попробовать дибилоид-метод: войти, новые куки скопировать и wget делать с ними.

1. iMacros

2. Perl: LWP

3. Firefox + perl : MozRepl.

soomrack ★★★★★
()
Ответ на: комментарий от Xintrea

Во второй строчке видимо имелось в виду не --cookie-jar а просто --cookie?

Да, конечно. Стал перечитывать man и заметил сначала синтаксис -b <name>=<value> и только потом увидел -b <файл с cookies>.

AITap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.