Web Scraping Flipkart Prices with PHP

The India Price Tracker tool uses web scraping to extract the prices of products listed on the Flipkart website. It uses the CURL library of PHP to fetch the HTML DOM of a Flipkart page and then uses regular expressions to extract the price and product image from the Meta tags.

Make sure you specify a User Agent string with your CURL request else the Flipkart server will reject your request.


$url = "http://www.flipkart.com/rado-analog-watch-women/p/itmdsvdxqb3y3jvp?affid=amitlabnol";

$response = getPriceFromFlipkart($url);

echo json_encode($response);

/* Returns the response in JSON format */

function getPriceFromFlipkart($url) {

	$curl = curl_init($url);
	curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 10.10; labnol;) ctrlq.org");
	curl_setopt($curl, CURLOPT_FAILONERROR, true);
	curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	$html = curl_exec($curl);

	$regex = '/<meta itemprop="price" content="([^"]*)"/';
	preg_match($regex, $html, $price);

	$regex = '/<h1[^>]*>([^<]*)<\/h1>/';
	preg_match($regex, $html, $title);

	$regex = '/data-src="([^"]*)"/i';
	preg_match($regex, $html, $image);

	if ($price && $title && $image) {
		$response = array("price" => "Rs. $price[1].00", "image" => $image[1], "title" => $title[1], "status" => "200");
	} else {
		$response = array("status" => "404", "error" => "We could not find the product details on Flipkart $url");

	return $response;