Web Scraping Amazon with PHP

There are two ways to get the price of any product listed on the Amazon website. You can either use the official Amazon API or you can perform web scraping.

Scraping essentially means that your script will download the web page from Amazon, parse the HTML and extract the price. This method is preferred when the Product Advertising API doesn’t have the prices for a particular product or when the price offered by the API is different from what is available on the Amazon website.

<?php

    /* Enter the Amazon Product ISIN */
    $amazonISIN = "B00OTWNSMM";

    /* Grab the content of the HTML web page */
    $html = file_get_contents("http://www.amazon.com/gp/aw/d/$amazonISIN");

    /* Clean-up */
    $html = str_replace("&amp;nbsp;", "", $html);

    /* The magical regex for extracting the price */
    $regex = '/\<b\>(Prezzo|Precio|Price|Prix Amazon|Preis):?\<\/b\>([^\<]+)/i';

    /* Return the price */

    if (preg_match($regex, $html, $price)) {
        $price = number_format((float)($price[2]/100), 2, '.', '');
        echo "The price for amazon.com/dp/$amazonISIN is $price";
    } else {
        echo "Sorry, the item is out-of-stock on Amazon";
    }

?>

All you have to do is specify the 10 digital Amazon ISIN code for a product and the PHP script will get the price for you.