En réalité, j'ai utilisé un "astore" proposé par amazon (visible dans l'onglet "boutique geek"). L'astore vous permet d'insérer une boutique dans votre site, en iframe.
Chaque jour, je fais tourner une tache cron qui récupère les produits de l'astore et les insère en bdd.
Voici le code permettant de parser une boutique astore, en utilisant xpath en php:
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$urls = array(
'http://astore.amazon.fr/...',
'http://astore.amazon.fr/...'
);
foreach ($urls as $urlI)
{
for ($i = 0; $i < 4; $i++)
{
@$doc->loadHTML(file_get_contents('http://astore.amazon.fr/monjule-21?_encoding=UTF8&node=1&page=' . $i));
$xpath = new DOMXPath($doc);
$products = $xpath->query('//table[@class="sidebarproducts"]//tr/td[@class="image"]');
foreach ($products as $product)
{
$picture = $product->getElementsByTagName('img')->item(0)->getAttribute('src');
$name = $product->getElementsByTagName('img')->item(0)->getAttribute('alt');
$url = 'http://astore.amazon.fr' . $product->getElementsByTagName('a')->item(0)->getAttribute('href');
$productArray = array('name' => $name, 'picture' => $picture, 'url' => $url);
/*
// Insertion bdd
*/
print_r($productArray);
}
}
}
Il vous faut juste remplacer les urls avec des liens astore, de type http://astore.amazon.fr/url-de-la-boutique?_encoding=UTF8&node=X , où X est la rubrique de votre astore.
Et vu qu'on est un peu feignant, on peut également parser les produits similaires, ce qui vous permettra d'avoir encore plus de produits :)
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$urls = array(
'http://astore.amazon.fr/monjule-21?_encoding=UTF8&node=1',
'http://astore.amazon.fr/monjule-21?_encoding=UTF8&node=2',
'http://astore.amazon.fr/monjule-21?_encoding=UTF8&node=3',
'http://astore.amazon.fr/monjule-21?_encoding=UTF8&node=4'
);
foreach ($urls as $urlI)
{
for ($i = 0; $i < 4; $i++)
{
@$doc->loadHTML(file_get_contents('http://astore.amazon.fr/votre-url-astore?_encoding=UTF8&node=1&page=' . $i));
$xpath = new DOMXPath($doc);
$products = $xpath->query('//div[@id="featuredProducts"]//tr[@class="imagerow"]/td');
foreach ($products as $product)
{
$picture = $product->getElementsByTagName('img')->item(0)->getAttribute('src');
$name = $product->getElementsByTagName('img')->item(0)->getAttribute('alt');
$url = 'http://astore.amazon.fr' . $product->getElementsByTagName('a')->item(0)->getAttribute('href');
$productArray = array('name' => $name, 'picture' => $picture, 'url' => $url);
/*
Insertion bdd
*/
print_r($productArray);
}
}
}
Je me suis dit que cela pourrait vous servir :)