Web Scraping Flipkart Prices with PHP

W
Published in: 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);
	curl_close($curl);

	$regex = '/
	$regex = '/]*>([^<]*)<\/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;
}
Published in: PHP

Looking for something? Find here!

Meet the Author

Web Geek, Tech Columnist
A
Amit Agarwal

Amit Agarwal is a Google Developer Expert in GSuite and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India. Read more on Lifehacker and YourStory

Get in touch