Buscando en Amazon

El siguiente ejemplo es una modificación del que aparece en el libro de Bausch Amazon Hacks, 100 Industrial-Strength Tips and Tools [5].
$ cat ./amazon_http.pl
#!/usr/local/bin/perl5.8.0
# amazon_http.pl
# A typical Amazon Web API Perl script using the XML/HTTP interface
# Usage: amazon_http.pl <keyword>

#Your Amazon developer's token
my $dev_key='insert developer token';

#Your Amazon affiliate code
my $af_tag='insert associate tag';

#Take the keyword from the command-line
my $keyword =shift @ARGV or die "Usage:perl amazon_http.pl <keyword>\n";

#Assemble the URL
my $url = "http://xml.amazon.co.uk/onca/xml3?t=" . $af_tag .
    "&dev-t=" . $dev_key .
    "&type=lite&f=xml&mode=books&" .
    "KeywordSearch=" . $keyword;

use strict;

#Use the XML::Parser  and LWP::Simple Perl modules
use XML::Simple;
use LWP::Simple;

my $content = get($url);
die "Could not retrieve $url" unless $content;

my $xmlsimple = XML::Simple->new(  );
my $response = $xmlsimple->XMLin($content);

my $details = $response->{Details};
if (ref($details) eq 'ARRAY') {
  foreach my $result (@$details){
      #Print out the main bits of each result
      print
      join "\n",
      $result->{ProductName}||"no title",
      "ASIN: " . $result->{Asin} . ", " .
      $result->{OurPrice} . "\n\n";
  }
} # sigue la modificación al del libro
elsif (ref($details) eq 'HASH') {
  print
  join "\n",
  $details->{ProductName}||"no title",
  "ASIN: " . $details->{Asin} . ", " .
  $details->{OurPrice} . "\n\n";
}
else {
  print "No encontré nada\n";
}
Véase un ejemplo de ejecución con una sóla respuesta:
$ ./amazon_http.pl 'Perl Medic'
Perl Medic: Transforming Legacy Code
ASIN: 0201795264, $24.49
Un ejemplo con ninguna respuesta:
$ ./amazon_http.pl 'Perl toto'
No encontré nada
y un ejemplo de ejecución con múltiples respuestas:
$ ./amazon_http.pl 'Perl CGI'
Programming Perl (3rd Edition)
ASIN: 0596000278, $34.96

JavaScript: The Definitive Guide
ASIN: 0596000480, $31.46

Learning Perl, Third Edition
ASIN: 0596001320, $23.77

JavaScript Bible, Fifth Edition
ASIN: 0764557432, $33.99

Perl Cookbook, Second Edition
ASIN: 0596003137, $33.97

Mastering Regular Expressions, Second Edition
ASIN: 0596002890, $27.17

Dive Into Python
ASIN: 1590593561, $27.99

JavaScript & DHTML Cookbook
ASIN: 0596004672, $27.17

JavaScript Bible, 4th Edition
ASIN: 0764533428, $33.99

Perl CD Bookshelf, Version 4.0
ASIN: 0596006225, $67.97

Casiano Rodríguez León
Licencia de Creative Commons
Programación Distribuida y Mejora del Rendimiento
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=44.
2012-06-19