The Code
Create a file called
used_report.pl containing the following code:
#!/usr/bin/perl
# used_report.pl
# A script to scrape Amazon, retrieve used listings, and write to a file
# Usage: perl used_report.pl <asin>
#Take the asin from the command-line
my $asin =shift @ARGV or die "Usage:perl used_report.pl <asin>\n";
use strict;
use LWP::Simple;
#Assemble the URL
my $url = 'http://www.amazon.com/exec/obidos/tg/stores/offering/list'.
'/-/' . $asin . '/used/';
#Request the URL
my $content = get($url);
die "Could not retrieve $url" unless $content;
#Set up some variables
my $i = 0;
my $totalprices = 0;
my $thisPrice = 0;
my $highPrice = 0;
my $lowPrice = 0;
#Loop through listings
while ($content =~ m!<b class=price>\$(.*?)</b>!mgis) {
$i++;
$thisPrice = $1;
if ($thisPrice >= $lastPrice) {
$highPrice = $thisPrice;
}
if ($i == 1 || $thisPrice <= $lowPrice) {
$lowPrice = $thisPrice;
}
$totalprices += $thisPrice;
}
$avgPrice = $totalprices / $i;
#Show the results
print <<"EOF";
Average Used Price: \$$avgPrice
Highest Price: \$$highPrice
Lowest Price: \$$lowPrice
EOF