Понадобилось мне выкачать все полноразмерные фотографии из некоего альбома, опубликованого в Picasaweb. Около 80 фоток. Кликать на каждое preview и делать "save image as ..." - долго и моторошно. Из подручных средств сложилось вот такое решение:
1)В правом нижнем углу страницы picasaweb есть ссылка на RSS feed. Делаем ей "save trarget as" в какой-то файл, например "album.xml"
2)Теперь надо выгрести из этого файла ссылки на картинки. Они там идут в таких вот тэгах:
"<media:content url='http://xyz.google.com/......../img00001.jpg' .../>"
Берем утилиту для извлечения кусок из xml и html-файлов по XPath-подобным выражениям под названием Xtract и делаем вот так:
Xtract '//media:content/@url' album.xml > IMAGES
Соответственно, в файл "IMAGES" попадают все значения атрибута "url" из всех тэгов "media:content".
3)Дальше на этот файл натравливается любая качалка (например, "wget -i IMAGES") и все, дело в шляпе.
Написать этот пост заняло где-то в десять раза больше времени, чем собственно провести все манипуляции :)
Наверняка я изобрел велосипед. Ну и фиг с ним :)
Рецепт пусть остается мне для истории, а вам, возможно, пригодится ссылочка на Xtract.
1)В правом нижнем углу страницы picasaweb есть ссылка на RSS feed. Делаем ей "save trarget as" в какой-то файл, например "album.xml"
2)Теперь надо выгрести из этого файла ссылки на картинки. Они там идут в таких вот тэгах:
"<media:content url='http://xyz.google.com/......../img00001.jpg' .../>"
Берем утилиту для извлечения кусок из xml и html-файлов по XPath-подобным выражениям под названием Xtract и делаем вот так:
Xtract '//media:content/@url' album.xml > IMAGES
Соответственно, в файл "IMAGES" попадают все значения атрибута "url" из всех тэгов "media:content".
3)Дальше на этот файл натравливается любая качалка (например, "wget -i IMAGES") и все, дело в шляпе.
Написать этот пост заняло где-то в десять раза больше времени, чем собственно провести все манипуляции :)
Наверняка я изобрел велосипед. Ну и фиг с ним :)
Рецепт пусть остается мне для истории, а вам, возможно, пригодится ссылочка на Xtract.
(no subject)
Date: 2007-09-28 11:04 am (UTC)Это надо что-то вроде SAX или TagSoup использовать.
(no subject)
Date: 2007-09-28 03:54 pm (UTC)(no subject)
Date: 2007-09-28 08:44 pm (UTC)Закрывать тэги наугад - это путь в никуда. А вдруг этот тэг закрывается "правильно" 10 байтами далее?
Тогда уже лучше документ целиком рандомно генерить.
(no subject)
Date: 2007-09-29 03:24 am (UTC)Но я не только закрытие тегов имел ввиду - еще есть нарушения вложенности, атрибуты без кавычек, compact-атрибуты (ака имя без значения) и незаэскейпленные энтитис (ака амперсанды в урл). Все эти штуки мешают парсить файл парсеру, соответствующему стандартам. Соответственно надо или писать свой парсер хитрый, либо столь же хитро препроцессить такие штуки.