Kreeger Posté 30 Septembre 2013 Posté 30 Septembre 2013 Bonjour,J'aimerais réaliser un petit comparateur de prix pour des clés cd de jeux vidéo (c'est tout à fait légal, je vous rassure). Les prix sont indiqués sur des sites qui vendent ces clés cd (cdkeyhouse par exemple).Cependant, là où cela coince, c'est que rare sont ceux qui ont un flux rss qui référence les jeux qu'ils vendent. Et parmis ceux qui proposent un tel fichier, parfois souvent il y a des doublons avec des noms différents pour un même produit et c'est vraiment la galère intégrale pour regrouper les produits identiques....captain_torche m'a parlé de Search API for Shopping qui peut être une bonne piste. Je n'avais pas pensé à utiliser les moteurs de recherche de cette façon (malheureusement l'api semble dépréciée).D'autres encore référencent le nom du jeu et un lien vers la fiche du produit, mais pas le prix ! Du coup, je suis obligé de scanner la page du produit (curl en php). Mais évidemment, c'est très.. très long et cela dépasse le timeout des hébergeurs (30 secondes). Sachant qu'il y a encore des milliers de produits à parcourir, je ne vois vraiment pas comment procéder.Me voilà donc bloqué. Si tout le monde avait un flux rss propre, ce serait facile évidemment, mais ce n'est pas le cas.Comment procéder dans ce cas ? Il faut faire ca en PHP ou dans un autre language ? Utiliser seulement ceux qui ont un flux rss "propre" (ce qui limite vraiment beaucoup) ? Ou trouver une solution pour parser le contenu, sachant que dès qu'ils metteront à jour la structure de leur site, il faudra réadapter tout le code ? Tout en gardant à l'esprit qu'une centaine de pages scannées (juste pour récupérer le prix), c'est au moins 30 secondes et que les hébergeurs limitent le temps maximum d'exécution a 30 secondes (et qu'il reste des centaines voir des milliers de pages à parser) ?Si vous avez des conseils, n'hésitez pas... Merci
adn Posté 30 Septembre 2013 Posté 30 Septembre 2013 Bonjour, La solution consiste à leur demander de te fournir un catalogue CSV. Ensuite il te suffit de le lire et de construire tes bases de données. Exemple http://boutique.aujardin.info
Kreeger Posté 30 Septembre 2013 Auteur Posté 30 Septembre 2013 Bonjour, Merci pour ta réponse rapide. Il n'y a plus qu'à espérer qu'ils en aient un
jcaron Posté 30 Septembre 2013 Posté 30 Septembre 2013 S'ils ont un programme d'affiliation (ce qui serait une source de revenus logique pour toi), ils ont probablement un flux produit (csv, xml...), en direct ou par l'intermédiaire de la plate-forme d'affiliation utilisée. Au delà, les doublons et les noms qui varient, c'est la galère habituelle. Dans certains cas tu peux avoir de la chance d'avoir des code-barres (UPC/EAN) ou des références éditeur dans les flux produits, mais même dans ce cas il y a souvent des doublons et/ou des erreurs, et en plus, là c'est du dématérialisé... Au final tu vas probablement devoir te rabattre sur du crawl et du parsing du HTML plus une bonne dose d'humain pour recoller tout ça. Évidemment, la partie crawl, il faut que ce soit effectué par une processus indépendant qui va remplir et mettre à jour une base de données, pas lancé à partir d'un serveur web. Pour le choix du langage, c'est vraiment comme tu le sens. Jacques.
Kreeger Posté 4 Octobre 2013 Auteur Posté 4 Octobre 2013 Bonjour jcaron, Je visualise bien le concept de crawler les milliers de pages. J'avais commencé à faire cela en php mais cela prend énormément de temps et j'obtiens des timeouts. J'avais pensé à parcourir avec un script les rares sitemaps qu'on me donnait pour enregistrer les urls à crawler dans la base de donnée, puis dans un deuxième temps, exécuter un autre fichier qui va parcourir chaque url enregistrée et parser ce qu'il faut. Mais de nouveau: temps d'exécution considérable, timeout... Bref.. Petite remise en question: Il faut faire cela en php? ou dans un autre language? Exécuter une seule fois le fichier qui parcourt les urls et parse (il va donc tourner très.. très... TRES longtemps).. ou exécuter ce fichier très régulièrement grâce à des crons? Cela demande énormément de temps pour réaliser le script qui va parser juste un seul site (car chaque site est différent). Au final, est-ce un projet réalisable ou dois-je seulement référencer les sites qui fournissent des CVS, XML "propre" (donc qui éviter de devoir crawler)... ?
adn Posté 7 Octobre 2013 Posté 7 Octobre 2013 Euh... Fais simple et intègre que ceux qui te proposent un flux CSV. Crawler les pages est plus complexe
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant