O'Reilly logo

eBay Hacks, 2nd Edition by David A. Karp

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

Hack #104. Search eBay Listings

Perform reliable searches with GetSearchResults.

In "Create a Search Robot" [Hack #21] , a Perl script is used to perform an automated eBay search and then email new listings as they're discovered. Although the script serves a valuable function, it has the notable handicap of relying entirely on "scraping" (using a series of Perl modules) to retrieve its search results.

Scraping involves parsing standard web pages in order to retrieve the desired data. As you might expect, any changes to eBay's search pages, even minor ones, may break the script until the script or modules on which it relies are updated to work with the new version.

The API, on the other hand, provides an officially supported interface to eBay's search engine, which means that scripts based on the API will be much more robust and nearly invulnerable to changes in eBay's search pages.

A Simple Search

Here's a simple Perl script, search.pl, that performs a search and displays the results:

     #!/usr/bin/perl
     require 'ebay.pl';

     use Getopt::Std;
     getopts('d');
     $keywords = shift @ARGV or die "Usage: $0 [-d] keywords";
    PAGE: 
     while (1) { 
  my $rsp = call_api({ Verb => 'GetSearchResults', DetailLevel => 0, Query => $keywords, SearchInDescription => $opt_d ? 1 : 0, Skip => $page_number * 100, }); if ($rsp->{Errors}) ...

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