die on unsupported format
[Biblio-Z3950.git] / Scraper.pm
index e1b13f4..d5e1ba8 100644 (file)
@@ -5,14 +5,45 @@ use strict;
 
 use WWW::Mechanize;
 
-binmode STDOUT, ':utf8';
-
 sub new {
-    my ( $class ) = @_;
+    my ( $class, $database ) = @_;
+
+       $database ||= $class;
+
     my $self = {
                mech => WWW::Mechanize->new(),
+               database => $database,
        };
     bless $self, $class;
     return $self;
 }
 
+sub save_marc {
+       my ( $self, $id, $marc ) = @_;
+
+       my $database = $self->{database};
+       mkdir 'marc' unless -e 'marc';
+       mkdir "marc/$database" unless -e "marc/$database";
+
+       my $path = "marc/$database/$id";
+
+       open(my $out, '>:utf8', $path) || die "$path: $!";
+       print $out $marc;
+       close($out);
+
+       warn "# created $path ", -s $path, " bytes";
+
+}
+
+our $dump_nr = 1;
+
+sub save_content {
+       my $self = shift;
+       my $path = "/tmp/$dump_nr.html";
+       open(my $html, '>', $path);
+       print $html $self->{mech}->content;
+       close($html);
+       warn "# save_content $path ", -s $path, " bytes";
+}
+
+1;