IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Analyser code HTML


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 41
    Par défaut Analyser code HTML
    Bonsoir à tous !

    Ca va faire un certain temps que je cherche sans réellement avancer sur la question suivante : comment crawler un site en particulier - enfin une page précise de ce site ?

    Ce que je souhaite faire, c'est générer une page de résultats d'une recherche puis récupérer les données qui m'intéressent de la liste de résultats pour les afficher comme il faut sur mon site.

    J'en ai parlé avec le responsable du site et il m'a clairement dit que c'était possible. Ca reviendrait à faire ce que Terminal A, GoVoyages et autres "comparateurs" font.

    Seulement, voilà j'ai du mal à voir lest étapes à suivre. Pour le moment, j'ai réussi à mettre la main sur ce bout de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function http_fetch_url($url, $timeout = 10, $userpwd = '')
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        if ($userpwd) {
            curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
        }
        $data = curl_exec($ch);
        curl_close($ch);
     
        return $data;
    }
    Le paramètre $url, c'est l'url pour avoir la liste des résultats avec les valeurs de recherche nécesssaires passées en GET.

    J'obtiens donc une page html dans $data. La question est ce que j'en fais après. La structure est trop simple je trouve, et du coup je ne vois pas comment cibler les informations que je veux.

    D'autant plus que je veux les mêmes informations pour chaque résultat donc mettre en place une boucle de lecture de mon fichier html.

    Est-ce possible ? A ma connaissance, c'est bon pour un fichier xml, avec une structure claire, alors que là le nombre de balises est bien trop réduit.

    Existe-t-il une solution en accord avec ce début de script ? Ou une toute autre solution ? Je suis preneuse aussi.

    En espérant avoir pu être claire, je vous remercie par avance pour votre aide.
    Bonne soirée !

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Ca reviendrait à faire ce que Terminal A, GoVoyages et autres "comparateurs" font.
    Les comparateurs ont accès à des sources de données XML, donc prémâchées

    Est-ce possible ?
    Oui
    A ma connaissance, c'est bon pour un fichier xml, avec une structure claire, alors que là le nombre de balises est bien trop réduit.
    Je ne comprends pas ce que tu veux dire par "là le nombre de balises est bien trop réduit".

    Existe-t-il une solution en accord avec ce début de script ? Ou une toute autre solution ?
    Tu peux parser ta chaîne avec DOM, http://fr.php.net/manual/fr/domdocument.loadhtml.php
    Il faudra éventuellement auparavant la nettoyer http://fr.php.net/tidy

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 41
    Par défaut
    Merci pour cette réponse rapide !

    Pour ce qui est des fichiers xmls auxquels auraient accès les comparateurs, ils sont disponibles pour une partie des produits du site que je veux crawler.
    Le reste est accessible via la simulation d'une recherche, puis le "crawling" de la page de résultats.

    Arrivée à ce niveau, j'en déduis que "crawler" revient à parser l'html, ce que j'ai essayé de faire et vais retenter avec les liens fournis. Merci !

    En fait, je me demandais si c'était la bonne définition du "crawling" ou est-ce un abus de langage ? Vu le changement du titre de la discussion (Crawler et crawler -> Analyser code html), j'en déduis que oui.

    Ou alors serait-ce moi qui n'aurai pas compris ce que proposait le propriétaire du site à "crawler" ?

    Enfin par nombre de balises trop réduits, je voulais dire que cibler des informations que je voulais serait plus compliquer dans une structure html qu'xml vu qu'elle reste très générale.

    Je teste la proposition de suite !

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Crawler = parcourir un site, généralement pour de l'indexage (moteurs de recherche), recherche de liens morts, etc.

    Enfin par nombre de balises trop réduits, je voulais dire que cibler des informations que je voulais serait plus compliquer dans une structure html qu'xml vu qu'elle reste très générale.
    Effectivement, il faut repérer ce qui t'intéresse à l'origanisation du HTML, dont tu restes tributaire.

Discussions similaires

  1. [RegEx] Analyse de code HTML d'une liste déroulante
    Par sigmoun dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2009, 13h57
  2. [RegEx] Analyser du code html
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2009, 20h38
  3. [MySQL] Analyse de code HTML
    Par safari25 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2009, 17h06
  4. Analyse de code HTML et simplification par l'XML
    Par Punky65250 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 10/11/2005, 10h24
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo