Php - Parsez votre boutique amazon avec xpath
Publié le par Gpenverne - Lu 551 fois - 0 commentaire
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 :)




Commentaires Le troll, c'est bien, aussi ;)