WWW::Scraper::ISBN::Driver - Driver class for WWW::Scraper::ISBN module.
use WWW::Scraper::ISBN::Driver; $driver = WWW::Scraper::ISBN::Driver->new(); $driver->search($isbn); if ($driver->found) { ... } $driver->verbosity(1); my $book = $driver->book(); print $book('title'); print $driver->error;
Requires the following modules be installed:
Carp
This is a base class, all site-specific drivers should inherit its members and methods. Driver subclasses named '$name' should be packaged as WWW::Scraper::ISBN::$name_Driver, e.g. WWW::Scraper::ISBN::LOC_Driver for LOC (Library of Congress) driver. Each driver need only implement the search() method, though they may have as many other methods as they need to get their job done. Only search() will be called by WWW::Scraper::ISBN->search().
$name
WWW::Scraper::ISBN::$name_Driver
WWW::Scraper::ISBN::LOC_Driver
search()
WWW::Scraper::ISBN->search()
It is important that the different drivers return at least a core set of information, though they may return additional information. The following self-explanatory fields should exist in $driver-book>:
$driver-
Additional standard fields may be added in the future. 'volume' and 'edition' are common. In some cases, there may be no information available for 'volume' or 'edition', and so these may be set to the empty string. However, they must still be set in the hash!
Due to the dynamic, ever-changing nature of the web, it is highly likely that the site from which many of these drivers glean their information will change. Hopefully, driver maintainers will keep drivers up to date, but they will all expire, and may behave unexpectedly. Keep this in mind if the driver continually returns weird results.
None by default.
The following methods are provided by WWW::Scraper::ISBN::Driver:
WWW::Scraper::ISBN::Driver
new()
$drv = WWW::Scraper::ISBN::Driver->new()
Class constructor. Creates new driver object and returns a reference to it. Sets the following default values:
found = 0; verbosity = 0; book = undef; error = "";
found() or found($bool)
if ($drv->found) { # ... } $drv->found(1);
Accessor/Mutator method for handling the search status of this record. This is 0 by default, and should only be set true if search was deemed successful and $driver->book contains appropriate information.
$driver->book
verbosity() or verbosity($level)
$driver->verbosity(3); if ($driver->verbosity == 2) { print "blah blah blah"; }
Accessor/Mutator method for handling the verbosity level to be generated by this driver as it is going. This can be used to print useful information by the driver as it is running.
book() or book($hashref)
my $book = $drv->book; print $book->{'title'}; print $book->{'author'}; $another_book = { 'title' => "Some book title", 'author' => "Author of some book" }; $drv->book( $another_book );
Accessor/Mutator method for handling the book information retrieved by the driver. The driver should create an anonymous hash containing the standard fields. WWW::Scraper::ISBN->search sets the WWW::Scraper::ISBN::Record->book() field to this value.
WWW::Scraper::ISBN->search
WWW::Scraper::ISBN::Record->book()
error() or error($error_string)
print $driver->error; $driver->error("Invalid ISBN number, or some similar error.");
Accessor/Mutator method for handling any errors which occur during the search. The search drivers may add errors to record fields, which may be useful in gleaning information about failed searches.
search($isbn)
my $record = $driver->search("123456789X");
Searches for information on the given ISBN number. Each driver must define its own search routine, doing whatever is necessary to retrieve the desired information. If found, it should set $driver->found and $driver->book accordingly.
$driver->found
handler() or handler($error_string)
$driver->handler("Invalid ISBN number, or some similar error.");
A generic handler method for handling errors. If given an error string, will store as per $self->error($error_string) and print on the standard output if verbosity is set. Returns $self->found(0).
$self->error($error_string)
$self->found(0)
WWW::Scraper::ISBN::LOC_Driver - Search Library of Congress online catalog
WWW::Scraper::ISBN::ISBNnu_Driver - Search www.isbn.nu
WWW::Scraper::ISBN::Pearson_Driver - Search Pearson Education's online catalog
WWW::Scraper::ISBN::ORA_Driver - Search O'Reilly and Associates's online catalog
WWW::Scraper::ISBN::AmazonUK_Driver - Search Amazon's UK online catalog
WWW::Scraper::ISBN::AmazonUS_Driver - Search Amazon's US online catalog
WWW::Scraper::ISBN::Yahoo_Driver - Search Yahoo! Books' online catalog =back
WWW::Scraper::ISBN
WWW::Scraper::ISBN::Record
No mailing list or website currently available. Primary development done through CSX ( http://csx.calvin.edu/ ).
Andy Schamp, <andy@schamp.net>
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.
2 POD Errors
The following errors were encountered while parsing the POD:
You forgot a '=back' before '=head1'
To install WWW::Scraper::ISBN::Driver, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Scraper::ISBN::Driver
CPAN shell
perl -MCPAN -e shell install WWW::Scraper::ISBN::Driver
For more information on module installation, please visit the detailed CPAN module installation guide.