#!/usr/bin/perl -w
# get_earnings_report.pl
#
# Logs into Amazon, downloads earning report,
# and writes an HTML version for your site.
# Usage: perl get_earnings_report.pl
use strict;
use URI::Escape;
use HTTP::Cookies;
use LWP::UserAgent;
use Net::SSLeay;
# Set your Associates account info.
my $email = 'emailaddr@yahoo.com';
my $pass = 'mypasswordhere';
my $aftag = 'amazonid';
# Create a user agent object
# and fake the agent string.
my $ua = LWP::UserAgent->new;
$ua->agent("(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)");
$ua->cookie_jar({}); # in-memory cookie jar.
# Request earning reports, logging in as one pass.
my $rpturl = "https://associates.amazon.com/gp/associates/".
"network/reports/main.html";
my $rptreq = HTTP::Request->new(POST => $rpturl);
my $rptdata = "report-type=shipments-by-item". # get individual item
+s
"&date-selection=qtd". # all earnings this q
+uarter
"&login_id=".uri_escape($email). # our email address.
"&login_password=".uri_escape($pass). # and password.
"&submit.download=Download my report". # get downloadble
+.
"&enable-login-post=true"; # log in and post at once.
$rptreq->content_type('application/x-www-form-urlencoded');
$rptreq->content($rptdata); my $report = $ua->request($rptreq);
print $report->content;
# Set the report to array.
my @lines = split(/\n/, $report->content);
# Get the time period.
my @fromdate = split(/\t/, $lines[1]);
my @todate = split(/\t/, $lines[2]);
my $from = $fromdate[1];
my $to = $todate[1];
# Print header...
print "<html><body>";
print "<h2>Items Purchased Through This Site</h2>";
print "from $from to $to <br><br>\n";
print "<ul>";
# Loop through the rest of the report.
splice(@lines,0,5);
foreach my $line (@lines) {
my @fields = split(/\t/, $line);
my $title = $fields[1];
my $asin = $fields[2];
my $edition = $fields[4];
my $items = $fields[8];
# Format items as HTML for display.
print "<li><a href=\"http://www.amazon.com/o/ASIN/$asin/ref=nosim/
+".
"$aftag\">$title</a> ($items) $edition <br>\n";
}
print "</ul></body></html>";
And this is my error:
C:\Perl>perl get_earnings_report.pl
Can't locate auto/Net/SSLeay/autosplit.ix in @INC (@INC contains: C:/P
+erl/lib C:
/Perl/site/lib .) at C:/Perl/lib/AutoLoader.pm line 160.
at C:/Perl/lib/Net/SSLeay.pm line 61
Can't locate loadable object for module Net::SSLeay in @INC (@INC cont
+ains: C:/P
erl/lib C:/Perl/site/lib .) at get_earnings_report.pl line 11
Compilation failed in require at get_earnings_report.pl line 11.
BEGIN failed--compilation aborted at get_earnings_report.pl line 11.
I have Windows XP. Is NET:SSLeay a current Perl Module, should I be using something else? How to I do HTTPS requests?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|