Конечно. Самый простой способ - это модуль Web :: Scraper . Он позволяет вам определять объекты скребка, которые состоят из
- имена хеш-ключей,
- Выражения XPath, которые находят элементы, представляющие интерес,
- и код для извлечения битов данных из них.
Объекты Scraper берут URL и возвращают хэш извлеченных данных. Код экстрактора для каждого ключа сам по себе может быть другим объектом скребка, если это необходимо, так что вы можете определить, как очистить повторяющиеся составные элементы страницы: предоставьте XPath для поиска составного элемента во внешнем скребке, а затем предоставьте кучу дополнительных XPath для извлечения. его отдельные биты во внутреннем скребке. Результатом будет автоматически вложенная структура данных.
Короче говоря, вы можете очень элегантно сосать данные со всей страницы в структуру данных Perl. При этом вся мощь XPath + Perl доступна для использования на любой странице. Поскольку страница анализируется с помощью HTML :: TreeBuilder, не имеет значения, насколько она неприятна. Получающиеся в результате скриптовые скрипты намного проще в обслуживании и гораздо более терпимы к незначительным изменениям разметки, чем скребки на основе регулярных выражений.
Плохая новость: пока что его документация почти не существует, поэтому вам придется поиграть с поиском, например, [ miyagawa web :: scraper ], чтобы найти примеры скриптов, опубликованных автором модуля. .