Конечно. Самый простой способ - это Web::Scraper модуль. Что она делает это позволяет определять объекты скребка, состоящие из ключевых имен
- хэш,
- XPath выражения, которые фиксируют элементы, представляющие интерес,
- и код для извлечения битов данных из них.
Скребковые объекты берут URL-адрес и возвращают хэш извлеченных данных. Код экстрактора для каждого ключа сам по себе может быть другим скребковым объектом, если необходимо, чтобы вы могли определить, как очистить повторяющиеся составные элементы страницы: предоставить XPath для поиска составного элемента во внешнем скребке, а затем предоставить связку большего количества XPaths для вытягивания вырезать отдельные биты во внутреннем скребке. В результате автоматически создается вложенная структура данных.
Одним словом, вы можете очень элегантно сосать данные со всей страницы в структуру данных Perl. При этом полная мощность XPath + Perl доступна для использования с любой страницей. Поскольку страница анализируется с помощью HTML :: TreeBuilder, не имеет значения, насколько она противна. Полученные сценарии скрепера намного проще поддерживать и гораздо более терпимы к незначительным изменениям разметки, чем скребки на основе регулярных выражений.
Плохая новость: ее документация почти не существует, поэтому вам нужно пройти с поисковой системой для чего-то вроде [miyagawa web::scraper], чтобы найти примеры скриптов, опубликованных автором модуля.
Также см. [http://datenzoo.de/pub/gpw2008/web-scraper/web-scraper-talk.html], который является моим немецким разговором о Web :: Sc Raper. Автоматический перевод: [http://66.196.80.202/babelfish/translate_url_content?.intl=de&lp=de_en&trurl=http%3A%2F%2Fdatenzoo.de%2Fpub%2Fgpw2008%2Fweb-scraper%2Fweb-scraper-talk.html] – Corion 2008-10-21 08:11:11