X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=COBISS.pm;h=f3c698dbd66b4450b9adf2b40af680f037051a7c;hb=62915784f08e91ecb387907c0b8276f6bf15048d;hp=d7628b5ffddd9d4b39d79130d2c87460a98f0b73;hpb=853d05751de1ecd197799ffd362e8653e9bdbc92;p=Biblio-Z3950.git diff --git a/COBISS.pm b/COBISS.pm index d7628b5..f3c698d 100644 --- a/COBISS.pm +++ b/COBISS.pm @@ -5,7 +5,6 @@ use strict; use WWW::Mechanize; use MARC::Record; -use File::Slurp; binmode STDOUT, ':utf8'; @@ -119,7 +118,7 @@ sub fetch_marc { my $comarc; - if ( $mech->content =~ m{
\s*(.+?(\d+\.)\s+ID=(\d+).+?)\s*
}s ) { + if ( $mech->content =~ m{
\s*(.+?(\d+)\.\s+ID=(\d+).+?)\s*
}s ) { my $comarc = $1; my $nr = $2; @@ -131,7 +130,9 @@ diag "fetch_marc $nr [$id]"; $comarc =~ s{]*>}{}gs; $comarc =~ s{}{}gs; - write_file "comarc/$id", $comarc; + open(my $out, '>:utf8', "comarc/$id"); + print $out $comarc; + close($out); print $comarc; @@ -158,6 +159,9 @@ diag "fetch_marc $nr [$id]"; diag $marc->as_formatted; + $nr++; + $mech->follow_link( url_regex => qr/rec=$nr/ ); + return $marc->as_usmarc; } else { die "can't fetch COMARC format from ", $mech->content;