Google ブックの収録状態を調べる

使い捨て。ちょっと下調べに使っただけです。XPath とかいまいちです。

#!/usr/bin/perl
use strict;
use warnings;
use utf8;

use Web::Scraper;
use URI;

my $scraper = scraper {
  process '//font[@size="-1"]/span/span[@style]', status => sub {
    my $node = $_->find('font');
    $node ? $node->{color} eq '#999999' ? $node->as_text =~ /プレビュー/ ? 'summary' : 'snippet' : 'all' : 'part';
  };
  result 'status';
};

foreach my $isbn (@ARGV) {
  my $result = $scraper->scrape(URI->new('http://books.google.co.jp/books?as_brr=0&q=isbn:' . $isbn));
  print "$isbn : " . (ref $result eq 'HASH' ? 'none' : $result) . "\n";
}
hetappi@violet ~/work
$ ./googlebookscheck.pl 8590379817 4873112036 4061848925 4840237743
8590379817 : all
4873112036 : part
4061848925 : snippet
4840237743 : none
hetappi@violet ~/work