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

ASP.NET Discussion :

extraire une partie d'un site web [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut extraire une partie d'un site web
    bonjour,

    je souhaite récupérer une partie d'un site web, voir fichier ""matchBETA.htm dans le .RAR""

    j'aimerais récupérer uniquement les deux tableaux de score...

    j'aimerais avoir des conseils pour la réalisation : là, je récupère l'intégralité du code source avec un "HttpWebRequest" ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = objStreamReader.ReadToEnd()
    puis je lis caractère par caractère pour identifier les balises d'ouverture et de fermeture... et apres j'ecris dans un label les balises qui m'interesse, y-a-t-il un moyen plus simple, d'identifier les balises?

    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Utilise Html Agility Pack. C'est un outil qui permet de parser du HTML facilement, un peu comme si c'était du XML mais en tenant compte des spécificités de HTML.

    Le premier tableau est dans un div avec un id ("poule"), donc ça devrait pas être trop difficile à récupérer. Par contre le 2e n'a aucun identifiant, donc c'est un peu plus coton... il faut parcourir la page en allant directement à sa position (genre la n-ième ligne du n-ième tableau...)

  3. #3
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    ok je vais essayer, affaire à suivre

  4. #4
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    voici le 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Dim doc As New HtmlDocument()
            doc.LoadHtml(val)
            Dim cpt As Integer = 0
            For Each table As HtmlNode In doc.DocumentNode.SelectNodes("//table")
                Console.WriteLine("Found: " + table.Id)
                For Each row As HtmlNode In table.SelectNodes("tr")
                    Console.WriteLine("row")
                    For Each cell As HtmlNode In row.SelectNodes("td")
                        Console.WriteLine("cell: " + cell.InnerText)
                        'MsgBox("cell: " + cell.InnerText)
                        cpt += 1
                        If cpt = 6 Then
                            Label1.Text = cell.InnerText.Replace("&nbsp;", "<br/>")
                            Exit For
                        End If
                        If cpt = 6 Then
                            Exit For
                        End If
                    Next
                    If cpt = 6 Then
                        Exit For
                    End If
                Next
                If cpt = 6 Then
                    Exit For
                End If
            Next
    par contre le formatage whoua...

    j'obtiens ça:

    "COMPOSITION DE LA POULE&nbsp;&nbsp;VELO SPORT FERTOIS&nbsp;&nbsp;RUGBY CLUB HERBRETAIS&nbsp;&nbsp;R C CASTROGONTERIEN&nbsp;&nbsp;RUGBY CLUB COLOMBANAIS&nbsp;&nbsp;VELO SPORT NANTAIS&nbsp;&nbsp;PATRIOTE BONNETABLE&nbsp;&nbsp;RUGBY OLYMPIQUE MAYENNAIS&nbsp;&nbsp;E S SEGRE HAUT ANJOU&nbsp;&nbsp;LE CELTIC RUGBY CLUB&nbsp;&nbsp;STADE TREILLIERAIN&nbsp;EQUIPE LOCALE&nbsp;POINTS&nbsp;POINTS&nbsp;EQUIPE VISITEUSE&nbsp;DATE&nbsp;DETAIL &nbsp;&nbsp;E S SEGRE HAUT ANJOU&nbsp;25&nbsp;3&nbsp;&nbsp;VELO SPORT FERTOIS&nbsp;09/10/2011 - 15:00 &nbsp;&nbsp;RUGBY OLYMPIQUE MAYENNAIS&nbsp;10&nbsp;10&nbsp;&nbsp;RUGBY CLUB HERBRETAIS&nbsp;09/10/2011 - 15:00 &nbsp;&nbsp;PATRIOTE BONNETABLE&nbsp;25&nbsp;0&nbsp;&nbsp;R C CASTROGONTERIEN&nbsp;09/10/2011 - 15:00 &nbsp;&nbsp;VELO SPORT NANTAIS&nbsp;35&nbsp;5&nbsp;&nbsp;RUGBY CLUB COLOMBANAIS&nbsp;09/10/2011 - 15:00 &nbsp;&nbsp;LE CELTIC RUGBY CLUB&nbsp;13&nbsp;40&nbsp;&nbsp;STADE TREILLIERAIN&nbsp;09/10/2011 - 15:00"
    je .Replace("&nbsp;", "<br/>") mais c'est hyper chiant pour recuperer les données correctement

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    Pourquoi ne pas utiliser des Regular Expression ?
    Si tu emploi le Regex suivant dans une page, tu obtiens les valeurs hors code HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string pageHtml = "<html>...."; // ici c'est la source de la page
    //tu coupes tout ce que tu peux en haut et en bas, ce qui est inutile
    pageHtml = pageHtml.Substring(pageHtml.IndexOf("</head>");
    pageHtml = pageHtml.Substring(0, pageHtml.IndexOf("</html>");
    Regex regex = new Regex(@"(?<=>)(?<=[\n\s])?(?:(?<t>[^<]*))");
    MatchCollection matches = regex.Matches(pageHtml);
    foreach (Match m in matches )
    {
    //Je purge les données
    }

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par digital3d Voir le message
    Pourquoi ne pas utiliser des Regular Expression ?
    Parce que c'est totalement inadapté pour parser du HTML, et qu'en utilisant des regex pour ça tu ne fais que réinventer quelque chose qui existe déjà : un parseur HTML...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/12/2014, 06h36
  2. extraire une photo depuis un site web
    Par azstar dans le forum C#
    Réponses: 3
    Dernier message: 19/09/2011, 17h05
  3. extraire une partie d'image d'une image source
    Par Zen_Fou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2006, 11h20
  4. extraire une partie d'un document rtf
    Par yac dans le forum Oracle
    Réponses: 12
    Dernier message: 08/01/2006, 10h44
  5. Quelle taille en pixels pour une animation d'un site web?
    Par ned-flanders dans le forum Flash
    Réponses: 6
    Dernier message: 06/10/2005, 11h26

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