use strict; use LWP::Simple; use LWP::UserAgent; use HTTP::Request::Common; use Archive::Zip; use FindBin; my $url = 'http://www.nummer.de/cgi-bin/nummer-daten?Aktion=Liste&Dokumenttyp=Beitraege'; my $zips = 'http://www.nummer.de/cgi-bin/nummer-daten'; my $verzeichnis = $FindBin::Bin . '/unpacked/'; mkdir $verzeichnis unless -d $verzeichnis; my $zahlen = LWP::Simple::get($url); foreach my $zahl (split /\r?\n/,$zahlen) { my $ua = LWP::UserAgent->new(agent => 'myua',timeout => 120); my $request = $ua->request(GET $zips,[ 'Aktion' => 'Einzel', 'Dokumenttyp' => 'Beitraege', 'Dokumentkennung' => $zahl ]); if ($request->is_success()) { my $filename = $verzeichnis . $zahl . '.zip'; open ZIP,'>',$filename or die $!; binmode ZIP; print ZIP $request->content(); close ZIP; my $zip = Archive::Zip->new($filename) or die $!; -d $verzeichnis . $zahl ? next : mkdir $verzeichnis . $zahl; $zip->extractTree($verzeichnis . $zahl); unlink $filename; }#if }#for