Tag Archives: e-commerce

Buscando o preço de e-commerces brasileiros usando PHP

Infelizmente nenhum e-commerce brasileiro possui uma API para integração. Imagine as possibilidades de mashup que poderiam ser criados se o Submarino e/ou Americanas liberassem uma API para consulta de produtos e de preços.

Porém existem outras formas de fazer isso, possuem N desvantagens quando comparada com uma API, mas funciona. A maneira mais fácil é fazer um httpRequest para a site do e-commerce e buscar o preço dentro do HTML que vem no httpResponse.

Quer ver um exemplo em PHP? Estou fazendo o uso de uma biblioteca FANTÁSTICA escrita em PHP, ela se chama simplehtmldom e é usada para fazer o parser de um HTML. Veja como ficou:


<?php
include('simple_html_dom.php');

//URL do produto
$url = "http://www.submarino.com.br/produto/6/21619508";

//Nome da loja
//Valores possíveis: Americanas, Submarino
$loja = "Submarino";

$html = file_get_html($url);
if ($loja == "Americanas") {
 $pattern = "dd.acomPrice";
} else if ($loja == "Submarino") {
 $pattern = "strong.for span";
}

foreach($html->find($pattern) as $element) {
 echo $element->innertext . "<br/>";
}
?>

Funciona de uma forma bem simples, a função file_get_html faz um request para o endereço que está na variável $url, método find você passa uma expressão para buscar algum conteúdo dentro do resultado HTML que da $url. Para quem conhece jQuery vai perceber que a sintaxe do “pattern” é o mesmo, extremamente simples e fácil de usar.

No caso do Americanas, estamos procurando todos os elementos dd que possuem a classe css acomPrice, dentro desta tag é que está o preço. No submarino o preço está dentro de um span que, por sua vez, está dentro de um strong com a classe css for.

Se você precisa buscar o preço de um produto em alguma loja que não seja essas duas, basta aninhar mais um if ali na verificação da loja e jogar na variável $pattern o caminho do preço no e-commerce que você precisa.

Se você está pensando em fazer uma busca de preço em massa, ou seja, buscar o preço de 100 ou mais  produtos, eu recomendo que você faça uma pausa de 5~10 segundos para não sobrecarregar o servidor do e-commerce. Use com moderação.

Clique aqui para fazer o download de 'Buscador preço PHP' (7.44 kB)

Este é o arquivo de exemplo que coloquei no post e também a biblioteca simplehtmldom.

UPDATE 30/04/2011: Como este script se baseia na estrutura da página HTML dos e-commerces, ele pode parar de funcionar a qualquer momento caso alguma alteração na página do e-commerce seja feita. É necessário alterar este script para atender a nova estrutura.

Sharing Buttons by Linksku