O'Reilly logo

Amazon Hacks by Paul Bausch

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Program AWS with SOAP::Lite and Perl

Use a standard Perl SOAP module to make requests and work with the responses.

Though SOAP requests and responses are more complex than those of XML/HTTP, they’re just as easy to work with if you have the right tools.

What You Need

SOAP::Lite has become the standard way for Perl developers to work with SOAP services. Many ISPs have SOAP::Lite installed, but it’s not yet ubiquitous. A quick request via email could save you hours of straining with the manual installation process. If you’re on a Windows server, you can install it fairly painlessly with the package manager at a command prompt:

               ppm install SOAP::Lite

The Code

Instead of assembling URLs, making an Amazon request with SOAP requires assembling a collection of variables and their values. Create a file called amazon.pl with the following code:

#!/usr/bin/perl
# amazon.pl
# A typical Amazon Web API Perl script that uses the SOAP::Lite Module.
# Usage: perl amazon.pl <keyword>

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

#Your Amazon affiliate code
my $af_tag='insert associate tag'; #Location of the Amazon WSDL file my $amazon_wdsl = "http://soap.amazon.com/schemas2/AmazonWebServices.wsdl"; use strict; #Use the SOAP::Lite Perl module use SOAP::Lite; #Take the query from the command-line my $keyword =shift @ARGV or die "Usage:perl amazon.pl <keyword>\n"; #Create a new SOAP::Lite instance, feeding it Amazon's WSDL my $amazon_search = SOAP::Lite->service("$amazon_wdsl"); ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required