[RESOLU] création d'un comparateur de prix

Petit nouveau ! | 3 Messages

08 oct. 2016, 07:33

Bien le bonjour à toute la communauté du forum phpfrance !

Je n'ai pas l'habitude de poster des messages sur le forum , c'est mon premier, car je suis nouveau et débutant ! Après avoir bien cherché, je n'ai (hélas), pas trouvé la solution à mon problème que voici :

On me demande de créer un comparateur de prix entre plusieurs sites concurrents qui vendent des produits similaires afin de déterminer qui est le moins cher.
A vue de nez, le problème semble être surmontable, seulement, avant même de parler programmation, un soucis de méthode entre en jeu.
En effet, les sites possèdent des milliers de produits dont les prix doivent être consultables à tout moment. J'ai d'abord pensé
qu'il fallait simplement lier ma base de données à celles des dits sites mais j"ai l'impression de me fourer. sans parler du niveau légal, je ne pense pas que cette méthode soit tolérée.
La vraie question qui se pose alors est : comment puis-je réaliser ce type de projet en php ? comment ferais-je pour avoir en temps réel toutes les informations à jour des sites marchands dans ma base de données toujours en php ?

J'espère sincèrement que vous pourrez m'aider.


Cordialement.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 oct. 2016, 10:13

Bonjour,

2 solutions s'offrent à toi :
1) utiliser des API si les sites distant en disposent (par Exemple Amazon a une API très bien faite)
2) faire du "scrapping" du site, c'est à dire simuler la consultation d'un internaute du site web souhaité et récupérer les infos automatiquement comme cela

Pour le scrapping, tu peux utiliser file_get_contents() pour récupérer le contenu de la page distante et preg_match() avec une expression régulière pour extraire le prix, ou si tu veux qqch de + évolué Guzzle ou Goutte, par exemple pour citer les + connus.

En sachant que tu vas avoir un travail manuel pour identifier les pages à récupérer et surtout le motif d'extraction du prix qui sera forcément différent pour chaque site.


:!: IMPORTANT : La pratique est généralement tolérée si tu fais quelques dizaines d'appels par jour, en revanche si ton script bug ou si tu as des centaines de produits à mettre à jour, alors la société distante pourrait porter plainte pour "accès, maintien et extraction frauduleuse de données dans un système de traitement automatisé de données".
Et vu que c'est un concurrent direct de ton activité, c'est probablement ce qu'elle ferra si elle s'en aperçoit.
:arrow: Prudence donc
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

08 oct. 2016, 12:16

Tout d'abord, je tiens à vous remercier pour avoir prit le temps de vous pencher sur mon problème et d'avoir apporté une solution.
pouvez-vous avoir un lien vers un cours ou un site qui détaillerait des procédures sur les deux solutions données ?

cordialement

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 oct. 2016, 17:41

Pour l'API d'Amazon, une recherche sur Google te donnera pleins d'infos/tuto/doc avec le mot clé "Product Advertising API" qui est le nom de l'API d'Amazon, à toi de voir pour les sites que tu veux interroger si ils ont un sytème similaire d'API:
https://www.google.fr/search?q=Product+Advertising+API
Typiquement pour récupérer un prix : http://docs.aws.amazon.com/fr_fr/AWSECo ... ation.html

Pour faire du scraping avec file_get_contents() et preg_match(), voici un exemple pour extraire le titre d'une page, à adapter pour récupérer le prix en fonction de comment est construite la page distante :
http://www.redscraper.com/blog/basic-of ... using-php/
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

09 oct. 2016, 12:37

merci bien pour toutes vos réponses...j'étudierais toutes ces solutions et essaierais de les appliquer. Je vous reviens dans un autre topic pour vous faire part de l'avancement.