Partage
  • Partager sur Facebook
  • Partager sur Twitter

Analyser le contenu d'un page web

d'un autre site

Sujet résolu
    31 mai 2008 à 10:19:35

    Bonjour, j'essaye d'analyser le contenu d'une page web pour en extraire le contenu d'une balise spécifique et ce, en php pour avoir une interface web accessible de partout.
    L'idée est de faire un comparateur de prix personnel entre certains sites qui s'y prêtent.
    Le problème vient du fait qu'il y a beaucoup de pages à analyser.

    La première solution que j'avais envisagée était le php seul, le script télécharge chacune des pages sur le serveur, puis les analyse et extrait les prix. Comme le téléchargement est très long, le traitement ne se fait pas jusqu'au bout et provoque un timeout.

    La deuxième solution, sur laquelle je travaille actuellement fait marcher javascript conjointement avec php, en cliquant sur un bouton, le javascript fait une boucle et envoie une requête HTTPrequest par page à télécharger à une page php (de mon site) qui se charge du téléchargement. Ensuite il suffit de recharger et l'analyse se fait. Mais cette solution est toujours très lourde.

    Plusieurs questions :
    * Puis-je analyser les pages web à la volée sans les télécharger sur le serveur? Il faudrait pour ça que je puisse les lire ligne à ligne, je ne sais pas comment m'y prendre.
    * Comment vous-même résoudriez-vous le problème? Y-a-t'il une solution que je n'aurai pas vue qui vous semblerait plus efficace? Il faudrait arriver à traiter entre 1500 et 3500 pages environ en un temps raisonnable...

    D'avance merci pour vos idées/conseils/commentaires...
    • Partager sur Facebook
    • Partager sur Twitter
      31 mai 2008 à 10:56:16

      Cette page t'appartient-elle ? As-tu l'autorisation d'en récupérer le contenu ?
      • Partager sur Facebook
      • Partager sur Twitter
        31 mai 2008 à 11:04:37

        Citation : huit six

        L'idée est de faire un comparateur de prix personnel entre certains sites qui s'y prêtent.


        A priori la page ne lui appartient pas mais il a l'autorisation
        • Partager sur Facebook
        • Partager sur Twitter
          31 mai 2008 à 11:11:46

          Bonjour, non la page ne m'appartient pas, mais je ne récupère que le contenu de la page html telle qu'elle est affichée quand on navigue normalement, pas de piratage ou quoi...
          des idées pour mon problème?
          • Partager sur Facebook
          • Partager sur Twitter
            31 mai 2008 à 11:19:05

            C'est une pratique purement illégale sans autorisation !

            C'est comme lorsque tu vas au cinéma. Tu vas voir le film mais ce n'est pas pour autant que tu apportes ton camescope pour filmer le film en même temps et en faire un dvd screener chez toi.
            • Partager sur Facebook
            • Partager sur Twitter
              31 mai 2008 à 11:33:02

              ...
              Bon, je vois que vous avez décidé de tuer mon topic...
              Je m'explique donc une dernière fois, vous êtes bien d'accord qu'il est parfaitement légal d'aller sur plusieurs sites et de relever à la main le prix de différents produits pour trouver le moins cher non? On ne fait que récupérer une information que le site met à disposition pour pouvoir acheter chez lui. Hé ben moi ce que je veux faire c'est le faire automatiquement et de préférence pour un catalogue déjà prédéfini.
              Selon moi il y a une grosse différence entre faire un screener d'un film au cinéma et demander le prix du billet!
              Si vous avez des idées pour réaliser simplement et efficacement ce que j'essaye de faire et que vous avez envie de m'aider, super, je suis preneur. Si vous voulez juste me faire perdre mon temps à gamberger dans mon topic sur une question de légalité sur laquelle vous ne connaissez très certainement rien du tout et qui de tout manière ne m'intéresse pas, passez votre chemin.
              Merci

              PS: Pour finir, je précise que google bot passe son temps à faire ce que je souhaite réaliser : récupérer des informations sur des sites en masse, je pense que ça se saurait si c'était illégal...
              • Partager sur Facebook
              • Partager sur Twitter
                31 mai 2008 à 13:00:34

                Citation : huit_six

                ...
                [...] Hé ben moi ce que je veux faire c'est le faire automatiquement et de préférence pour un catalogue déjà prédéfini.



                C'est ça qui est illégal, s'approprier le contenu d'un autre site de manière automatique. Quand tu utilises ton navigateur, tu le fais à titre personnel. Pour ton projet, ce que tu désires faire, c'est récupérer un contenu qui ne t'appartient pas automatiquement en vue de le rediffuser à tes utilisateurs. On appelle cette pratique du vol !!!

                Citation

                Si vous voulez juste me faire perdre mon temps à gamberger dans mon topic sur une question de légalité sur laquelle vous ne connaissez très certainement rien du tout et qui de tout manière ne m'intéresse pas, passez votre chemin.
                Merci



                Je dirais que c'est surtout toi qui n'y connais rien en terme de légalité sur Internet. Un site Internet est considéré comme une oeuvre multimédia dite "de l'esprit". Elle est donc protégée contre le vol et la contrefaçon par le CPI (Code de la Propriété Intellectuelle). Tous les composants d'une application Internet sont protégées (webdesign, sons, vidéos, contenu rédactionnel...). Bref, tu ne peux pas t'accaparer un contenu d'un site Internet sans autorisation de son propriétaire. Le seul droit que tu as, c'est de pouvoir citer un extrait d'un article récupéré sur un site en mentionnant explicitement l'auteur de l'article en question.

                Citation

                PS: Pour finir, je précise que google bot passe son temps à faire ce que je souhaite réaliser : récupérer des informations sur des sites en masse, je pense que ça se saurait si c'était illégal...



                Sauf que Google est un moteur de recherches. Il indexe du contenu pour faire des recherches. Il ne récupère pas les contenus pour en faire son propre site. Il fait des classements. Et les propriétaires des sites donnent implicitement leur autorisation à indexation des contenus de leur site dès lors qu'ils le mettent en ligne.
                • Partager sur Facebook
                • Partager sur Twitter
                  31 mai 2008 à 13:10:48

                  Ok, bon j'ai du ne pas m'exprimer clairement... Ça doit être de ma faute après tout... juste une question, qui a dit que je comptais rendre public les résultats?
                  Je ne compte pas rediffuser du contenu à d'autres utilisateurs que MOI, je me fiche de citer les sources puisque personne d'autre que MOI ne va lire le contenu et enfin, tu te contredis toi même, je cite :
                  "Et les propriétaires des sites donnent implicitement leur autorisation à indexation des contenus de leur site dès lors qu'ils le mettent en ligne."
                  Ce que je compte faire c'est justement une indexation par rapport uniquement aux prix et à usage personnel (la page est protégée par un mot de passe connu de moi seul).
                  Maintenant qu'on a perdu notre temps avec des questions annexes, inintéressantes et complètement hors topic, peut-on se recentrer sur le sujet?
                  Si vous ne savez pas, ou n'avez pas envie de me répondre, ce n'est pas un problème, mais je vous en prie ne pourrissez pas mon topic! La question peut interresser d'autre personnes et pour l'instant le topic est complètement inutile et stérile.
                  D'avance merci
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 mai 2008 à 13:20:02

                    Citation : Emacs

                    Sauf que Google est un moteur de recherches. Il indexe du contenu pour faire des recherches. Il ne récupère pas les contenus pour en faire son propre site. Il fait des classements. Et les propriétaires des sites donnent implicitement leur autorisation à indexation des contenus de leur site dès lors qu'ils le mettent en ligne.


                    Belle théorie...


                    Pour répondre à la question, y'a deux cas de figure, soit les sites distants sont admirablement codées en xhtml et dans ce cas tu pourras utiliser DOM pour parcourrir l'arbre html récupéré (file_get_contents(...) ou équivalent).
                    Seconde possibilité, le site est invalide, HTML4 ou antérieur donc pas de possibilité XML, alors recherche dans PEAR, il me semble qu'il y a des bibliothèques de parsing.


                    Tracker.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 mai 2008 à 13:31:07

                      :D Ouf, merci tracker, j'ai cru qu'on n'allait pas arriver à rentrer dans le vif du sujet! Bon je vais essayer file_get_contents, en plus elle permet de ne choisir qu'une portion, ça me permettre de pas surcharger le serveur. J'espère que ça va marcher.
                      Encore merci beaucoup j'essaye ça et je vous tiens au courant.

                      [Edit] Bon, erreur surprenante, j'obtiens :
                      Warning: file_get_contents() expects at most 2 parameters, 5 given in [...]releves.php on line 29
                      or j'ai suivi le prototype donné et ça donne bien 5 paramètres dans la description, j'ai vérifié ma version de php et j'ai bien 4.4 donc d'après le manuel, ça devrait fonctionner...

                      [Edit2]Résolu!
                      tout simplement, je fais fgets directement sur l'url et avec les regexp je récupère le contenu de la balise qui m'intéresse. Ensuite pour le faire en boucle sur chacun des produits qui m'intéressent, je fais faire la boucle par un script javascript, ce qui m'évite les timeouts coté serveur.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Analyser le contenu d'un page web

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown