Andrew Schamp > WWW-Scraper-ISBN-0.25 > WWW::Scraper::ISBN

Download:
WWW-Scraper-ISBN-0.25.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.25   Source  

NAME ^

WWW::Scraper::ISBN - Perl extension for retrieving information about books (e.g., title, author, etc) from a variety of sources on the internet, by ISBN number.

SYNOPSIS ^

  use WWW::Scraper::ISBN;
  my $scraper = WWW::Scraper::ISBN->new();
  $scraper->drivers("Driver1", "Driver2");
  my $isbn = "123456789X";
  my $record = $scraper->search($isbn);
  if($record->found) {
        print "Book ".$record->isbn." found by driver ".$record->found_in."\n";
        my $book = $record->book;
        # do stuff with book hash
        print $book->{'title'};
        print $book->{'author'};
        # etc
  } else {
        print $record->error;
  }

REQUIRES ^

Requires the following modules be installed:

WWW::Scraper::ISBN::Record
Carp

DESCRIPTION ^

The WWW::Scraper::ISBN class was built as a way to retrieve information on books from multiple sources easily. It utilizes at least one driver implemented as a subclass of WWW::Scraper::ISBN::Driver, each of which is designed to scrape from a single source. Because we found that different sources had different information available on different books, we designed a basic interface that could be implemented in whatever ways necessary to retrieve the desired information.

EXPORT

None by default.

METHODS ^

new()

Class constructor. Returns a reference to an empty scraper object. No drivers by default

drivers() or drivers($DRIVER1, $DRIVER2)
   foreach my $driver ( $scraper->drivers() ) { ... }

   $scraper->drivers("DRIVER1", "DRIVER2");

Accessor/Mutator method which handles the drivers that this instance of the WWW::Scraper::ISBN class should utilize. The appropriate driver module must be installed (e.g. WWW::Scraper::ISBN::DRIVER1_Driver for "DRIVER1", etc.). The order of arguments determines the order in which the drivers will be searched.

When this method is called, it loads the specified drivers using 'require'.

Must be set before search() method is called.

reset_drivers
   $scraper->reset_drivers;

Sets the list of drivers to an empty array. Will disable search feature until a new driver is specified.

search($isbn)
   my $record = $scraper->search("123456789X");

Searches for information on the given ISBN number. It goes through the drivers in the order they are specified, stopping when the book is found or all drivers are exhausted. It returns a WWW::Scraper::ISBN::Record object, which will have its found() field set according to whether or not the search was successful.

If you have Business::ISBN installed, the method will attempt to validate the given isbn.

CODE EXAMPLE ^

    use WWW::Scraper::ISBN;

    # instantiate the object
    my $scraper = WWW::Scraper::ISBN->new();

    # load the drivers.  requires that 
    #   WWW::Scraper::ISBN::LOC_Driver and
    #   WWW::Scraper::ISBN::ISBNnu_Driver 
    # be installed
    $scraper->drivers("LOC", "ISBNnu"); 

    @isbns = [ "123456789X", "132457689X", "987654321X" ];

    foreach my $num (@isbns) {
        $scraper->isbn($num);
        $scraper->search($scraper->isbn);
        if ($scraper->found) {
                my $b = $scraper->book;
                print "Title: ".$b->{'title'}."\n";
                print "Author: ".$b->{'author'}."\n\n";
        } else {
                print "Book: ".$scraper->isbn." not found.\n\n";
        }
    }

SEE ALSO ^

WWW::Scraper::ISBN::Driver
WWW::Scraper::ISBN::Record

No mailing list or website currently available. Primary development done through CSX ( http://csx.calvin.edu/ )

AUTHOR ^

Andy Schamp, <andy@schamp.net>

COPYRIGHT AND LICENSE ^

Copyright 2004 by Andy Schamp

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: