Есть наш любимый вконтактик.


Во вконтактике есть фишка - галерея по тегу - "Фотографии со мной"

Более того, эта пакость целиком на 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 и авторизации сам решал, и качал нужную галерею.

самый простой и тупой вариант iMacros
также можно покопавшись в коде страничек выяснить как генерить ссылку на полную картинку из основной галереи
далее загружаем галерею проматываем до конца и обрабатываем полученный контент на предмет генерации ссылок.

(при прокрутке "подгружаются" превью следующих фото, а при клике открывается "подокошко" с картинкой и кнопкой "скачать")

Значит там есть список чего загружать в качестве превью. Берете его и суете в цикле функции которая загружает полный размер. Разумеется это под ГМ.

Но у вконтактика авторизация, и ajax.

При чем тут авторизация: вы должны быть авторизованы. Иначе оно kinda empty аще. Аякс вас вообще не волнует: там же есть готовые функции: их просто юзайте и все.

Но, в принципе можно и запросы слать.

Чтобы посмотреть какие и как выглядят, скачайте аддон Live HTTP Header.

20-10-2011 19:03:08
Да, чтобы посмотреть что есть на странице после ее обработки собственными скриптами скачайте View Source Chart.

Ну да, я уже понял, что стоило юзать гризманки. Но уже сделал через iMacros.

Аццки медленно получилось, но цель выполнило.

Короче забейте. Геморрой. Список есть, но не в кодах, его выдает сервер POST'ом. И не целиком, а по частям. После этого сразу несколько фоток загружаются юзеру в кэш, GET'ом. Когда юзер щелкает по фотке (далее) из списка подгружаются следующие. Скрипт преобразует адрес страницы (линк на фотке) в адрес картинки и достает ее из кэша, или сервера. Когда выданный кусок списка кончается идет новый POST, но уже с указанием смещения в альбоме. Ну и так все повторяется пока альбом не кончится.

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

Гораздо проще запустить ишака, вычистить кэш, пройтись по альбомам и собрать фотки из кэша. Пачкой переименовать и готово.

20-10-2011 22:01:14

Lockywolf пишет

Но уже сделал через iMacros.Аццки медленно получилось, но цель выполнило.

Все равно быстрее чем вручную с учетом расхода времени на написание? :)

PS Впрочем, я-то проверял на обычных альбомах, потому что меня там нет в тэгах.

20-10-2011 22:09:38
А, вот это что такое, яМакрос: кнопконажиматель. Я-то думал.