1. #1
    Candidat au Club
    Homme Profil pro
    Aspen Pharmacare
    Inscrit en
    août 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Australie

    Informations professionnelles :
    Activité : Aspen Pharmacare
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : août 2017
    Messages : 1
    Points : 2
    Points
    2

    Par défaut Extraction de données depuis un code HTML

    Bonjour tout le monde,

    Pour le boulot, je dois créer un "annuaire" de toutes les boutiques qui vendent de l'outillage dans l'état du New South Wales en Australie.

    Pour ce faire, je suis parti sur yellow pages pour faire la recherche, qui me ressort 670 boutiques.

    J'ai regardé un peu comment fonctionnait le code source de la page, et j'ai trouvé dans le code ou se trouvent les infos que je recherche.

    Depuis deux jours j'essai de trouver comment extraires les données depuis ce code source, mais sans résultats...

    En gros, sur un code qui ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    data-product-version="3" data-product-id="501059128" data-product-code="YPD04-DC" data-business-name="Lachlan_Steel_Power_Tools_Plus" data-full-name="Lachlan Steel Power Tools Plus" data-result-type="O" data-heading-code="12033" data-heading-name="Tools & Trade Tools" data-suburb="Cowra" data-state="NSW"
    
                        
    <a href="mailto:sales%40lachlansteel.com.au?subject=Enquiry%2C%20sent%20from%20yellowpages.com.au&amp;body=%0A%0A%0A%0A%0A------------------------------------------%0AEnquiry%20via%20yellowpages.com.au%0Ahttps%3A%2F%2Fwww.yellowpages.com.au%2Fnsw%2Fcowra%2Flachlan-steel-power-tools-plus-15470421-listing.html%3FreferredBy%3Dwww.yellowpages.com.au%26context%3DbusinessTypeSearch" rel="nofollow" title="Email sales@lachlansteel.com.au" data-email="sales@lachlansteel.com.au" class="contact contact-main contact-email " >
    
                
    <a href="tel:0263424188" rel="nofollow" title="Phone" class="click-to-call contact contact-preferred contact-phone " >
        
            <span class='glyph icon-phone border border-dark-blue with-text'></span><span class="contact-text">(02) 6342 4188</span>
        
    </a>
    Je dois donc récupérer toutes les infos en gras dans le code, et les transferer sur un fichier texte..


    Quelqu'un a une idée de comment je peux m'y prendre?


    Merci d'avance!


    Antoine

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    4 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 4 932
    Points : 16 342
    Points
    16 342

    Par défaut

    En ne commençant pas par la.
    Ce que tu t'apprête à faire est du "scrapping", il est très probable que tu n'en ai pas le droit.

    essaye d'en trouver une version téléchargeable, ou xml ou json.

    Si tu le fais quand même, utilise un outil adapté à la manipulateur de texte: les expressions régulières.
    Et utilise donc des programmes qui font le travail: par exemple, sed et grep, deux utilitaires en ligne de commande (linux a la base).

    En combinant avec une fonctionalité comme les "macros" de notepad++, d'habitude, je reformate ce genre d'informations en 5 minutes, même pour d'immenses listes.

    Si par contre ton procédé doit être répétable, cette dernière possibilité n'est pas utilisable.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    4 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 4 932
    Points : 16 342
    Points
    16 342

    Par défaut

    Par ailleurs, toutes les informations sont disponibles comme attributs spécifiques comme data-email ou data-full-name.
    Un peu d'analyse xml devrait suffire.

    quelques requetes xpath, probablement dans un xslt
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 5 826
    Points : 16 012
    Points
    16 012
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par Antoine76 Voir le message
    Pour ce faire, je suis parti sur yellow pages pour faire la recherche, qui me ressort 670 boutiques.
    Depuis deux jours j'essai de trouver comment extraires les données depuis ce code source, mais sans résultats...
    Bonjour
    T'as essayé de voir si les yellow pages ne proposent pas par hasard un "webservice" qui te fournirait directement les infos dont tu as besoin dans un format numérique directement intégrable dans ton annuaire ?
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 2 075
    Points : 4 593
    Points
    4 593

    Par défaut

    C'est long et pénible mais tu peux faire une machine à états/ automate (<- )

    C'est pénible, parce qu'avec le HTML/ XML il faut chercher la balise de début '<XXX' et la balise de fin qui peut être soit '</XXX>' soit '/>' soit '>'.

    Et en plus en C, il faut charger le fichier en mémoire avec des 'realloc'

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/08/2013, 21h51
  2. Extraction de données depuis SAP
    Par romrai dans le forum SAP
    Réponses: 7
    Dernier message: 03/08/2006, 15h42
  3. Réponses: 2
    Dernier message: 20/04/2006, 16h03
  4. Extraction de données depuis fichier .NDX ...
    Par Olif_C dans le forum WinDev
    Réponses: 4
    Dernier message: 30/08/2005, 11h57
  5. extraire des données d'un code HTML
    Par blueice dans le forum Fonctions
    Réponses: 5
    Dernier message: 19/08/2004, 19h41

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