>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Поддержка пользователей http://forum.mozilla-russia.org/viewforum.php?id=26 >Как заскриптить браузер на массовую скачку? http://forum.mozilla-russia.org/viewtopic.php?id=52026 |
Lockywolf > 19-10-2011 17:24:06 |
Есть наш любимый вконтактик. Во вконтактике есть фишка - галерея по тегу - "Фотографии со мной" Более того, эта пакость целиком на javascript+ajax. (при прокрутке "подгружаются" превью следующих фото, а при клике открывается "подокошко" с картинкой и кнопкой "скачать") Хочется сделать некий скрипт, который для каждой превьюшки "кликнет" на нее и скачает картинку по ссылке. Раньше бы я решал эту задачу на перле - парсил страничку регекспами на предмет .jpg. Но у вконтактика авторизация, и ajax. Соответственно, вижу 2 возможных решения задачи: 0)найти модули Perl(С,С++), которые умеют работать с ajax Выделить код Код:0)mainpage = Open_page("page", auth, cookies, etc) 1) for i = 1 to 5 mainpage.scrolldown 2)foreach (image:mainpage) my $subpage=click(image) my @imglnks = parse($subpage) foreach( img:imglinks) get(img) 1)Как-то заскриптить firefox, чтобы тот проблему ajax и авторизации сам решал, и качал нужную галерею. |
okkamas_knife > 19-10-2011 17:55:13 |
самый простой и тупой вариант iMacros |
kostyanet > 20-10-2011 18:41:31 |
Значит там есть список чего загружать в качестве превью. Берете его и суете в цикле функции которая загружает полный размер. Разумеется это под ГМ.
При чем тут авторизация: вы должны быть авторизованы. Иначе оно kinda empty аще. Аякс вас вообще не волнует: там же есть готовые функции: их просто юзайте и все. Но, в принципе можно и запросы слать. Чтобы посмотреть какие и как выглядят, скачайте аддон Live HTTP Header. 20-10-2011 19:03:08 |
Lockywolf > 20-10-2011 21:46:39 |
Ну да, я уже понял, что стоило юзать гризманки. Но уже сделал через iMacros. Аццки медленно получилось, но цель выполнило. |
kostyanet > 20-10-2011 21:59:51 |
Короче забейте. Геморрой. Список есть, но не в кодах, его выдает сервер POST'ом. И не целиком, а по частям. После этого сразу несколько фоток загружаются юзеру в кэш, GET'ом. Когда юзер щелкает по фотке (далее) из списка подгружаются следующие. Скрипт преобразует адрес страницы (линк на фотке) в адрес картинки и достает ее из кэша, или сервера. Когда выданный кусок списка кончается идет новый POST, но уже с указанием смещения в альбоме. Ну и так все повторяется пока альбом не кончится. Никаких указаний сколько позиций выдавать в списке нет. Все время разное количество, очевидно зависит от размера фоток, или фиг знает чего. Гораздо проще запустить ишака, вычистить кэш, пройтись по альбомам и собрать фотки из кэша. Пачкой переименовать и готово. 20-10-2011 22:01:14 Lockywolf пишет
Все равно быстрее чем вручную с учетом расхода времени на написание? PS Впрочем, я-то проверял на обычных альбомах, потому что меня там нет в тэгах. 20-10-2011 22:09:38 |