Как уже говорили другие, WWW :: Mechanize является отличным модулем, который можно использовать для задач веб-поиска; вы научитесь правильно его использовать, это может облегчить выполнение общих задач. Я использовал его для нескольких задач по поиску в Интернете, и он просто позаботился обо всех скучных вещах - «иди сюда, найди ссылку с этим текстом и следуй за ней, теперь найди форму с полями с именами« username »и« password » , введите эти значения и отправьте форму ... ".
Scrappy также стоит посмотреть - он позволяет вам многое делать с очень небольшим кодом - пример из его документации:
my $spidy = Scrappy->new;
$spidy->crawl('http://search.cpan.org/recent', {
'#cpansearch li a' => sub {
print shift->text, "\n";
}
});
Scrappy использует Web :: Scraper под капотом, на который вы, возможно, захотите посмотреть и в качестве другого варианта.
Кроме того, если вам нужно извлечь данные из таблиц HTML, HTML :: TableExtract упрощает эту задачу - вы можете найти интересующую вас таблицу, назвав содержащиеся в ней заголовки и извлечь данные очень легко, например:
use HTML::TableExtract;
$te = HTML::TableExtract->new( headers => [qw(Date Price Cost)] );
$te->parse($html_string) or die "Didn't find table";
foreach $row ($te->rows) {
print join(',', @$row), "\n";
}