У меня всегда были проблемы с wget и cookie-файлами (пытаясь заставить wget использовать мои cookie-файлы Mozilla и т. Д.), Поэтому я переключился на использование библиотеки Perl WWW :: Mechanize .Он обрабатывает файлы cookie для вас, а также все обычные вещи, которые вы ожидаете от браузера, такие как обработка и история 302.
Простой пример, который входит на сайт, захватывает все JPG и нажимает кнопку "Следующая »ссылка для нумерации страниц:
use warnings;
use strict;
use WWW::Mechanize;
use File::Slurp;
my $mech = WWW::Mechanize->new;
$mech->get('http://example.com/login') || die;
$mech->submit_form( form_name => 'login_form',
fields => { username => 'me',
password => 'secret' } ) || die;
while (1) {
for my $link ($mech->links) {
my $url = $link->url;
if ($url =~ /(image_\d+\.jpg)\z/) {
my $file = $1;
$mech->get($url);
File::Slurp::write_file($file, $mech->content);
$mech->back; # like the browser back button
}
}
# look at next page, if any
my $result = $mech->follow_link(text_regex => qr/Next/);
if (!$result) {
last;
}
}