Извлечение медиафайлов (изображений, видео и т. Д.) По ссылкам в Perl - PullRequest
2 голосов
/ 13 ноября 2011

Как и в Reddit r / pic sub-reddit, я хочу агрегировать медиа из разных источников. Некоторые сайты используют спецификации OEmbed для показа мультимедиа на странице, но не все сайты делают это. Я просматривал исходники Reddit, потому что по сути они «очищают» ссылки, которые пользователи отправляют, получают изображения, видео и т. Д. Они создают эскизы, которые затем отображаются вдоль ссылки на их сайте. Теперь я хотел бы сделать что-то подобное, и я посмотрел на их код [1], и кажется, что у них есть собственные скребки для каждого распознаваемого домена, а затем у них есть общий класс Scraper, который использует простую логику для получения изображений из любого домена. (в основном они извлекают веб-страницу, анализируют HTML, а затем определяют самое большое изображение на странице, которое затем используют для создания эскиза).

Поскольку это открытый исходный код, я, вероятно, могу повторно использовать код для своего приложения, но, к сожалению, я выбрал Perl, так как это хобби-проект, и я пытаюсь изучить Perl. Есть ли модуль Perl, который имеет аналогичную функциональность? Если нет, существует ли модуль Perl, похожий на Python Imaging Library? Было бы удобно определить размеры изображения без фактической загрузки всего изображения и создания эскизов.

Спасибо!

[1] https://github.com/reddit/reddit/blob/master/r2/r2/lib/scraper.py

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

Image :: Size - это специализированный модуль для определения размеров изображения в различных форматах.Этого должно быть достаточно для чтения первых 1000 октетов или около того из ресурса, достаточно для различных заголовков изображений, в буфер и работы с этим .Я не проверял это.

Я не знаю ни одного общего модуля очистки, который имеет API для запросов диапазона HTTP, чтобы избежать загрузки всего ресурса изображения, но его легко создать подкласс WWW ::Механизируйте .

0 голосов
/ 13 ноября 2011

Попробуйте PerlMagick , там же приведена инструкция по установке.

...