Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№119-10-2011 17:24:06

Lockywolf
Участник
 
Группа: Extensions
Зарегистрирован: 10-11-2004
Сообщений: 895
UA: Firefox 5.0

Как заскриптить браузер на массовую скачку?

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


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

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


Ubuntu is ancient African word, which means "I cannot configure slackware"...

Отсутствует

 

№219-10-2011 17:55:13

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Firefox 3.6

Re: Как заскриптить браузер на массовую скачку?

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


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№320-10-2011 18:41:31

kostyanet
Участник
 
Группа: Members
Зарегистрирован: 27-09-2009
Сообщений: 148
UA: Firefox 7.0

Re: Как заскриптить браузер на массовую скачку?

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

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

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

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

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

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

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

Отредактировано kostyanet (20-10-2011 19:03:08)

Отсутствует

 

№420-10-2011 21:46:39

Lockywolf
Участник
 
Группа: Extensions
Зарегистрирован: 10-11-2004
Сообщений: 895
UA: Firefox 6.0

Re: Как заскриптить браузер на массовую скачку?

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

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


Ubuntu is ancient African word, which means "I cannot configure slackware"...

Отсутствует

 

№520-10-2011 21:59:51

kostyanet
Участник
 
Группа: Members
Зарегистрирован: 27-09-2009
Сообщений: 148
UA: Firefox 7.0

Re: Как заскриптить браузер на массовую скачку?

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

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

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

Добавлено 20-10-2011 22:01:14

Lockywolf пишет

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

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

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

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

Отредактировано kostyanet (20-10-2011 22:09:38)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]