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

VB.NET Discussion :

Recupération de table avec htmlagilitypack [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien de bureau d etude
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien de bureau d etude
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Par défaut Recupération de table avec htmlagilitypack
    Bonjour,

    Je cherche à remplacer des valeurs dans un tableau html par des liens hypertext.
    J'utilise donc htmlagilitypack.
    J'arrive à extraire mon tableau mais je n'arrive pas à parcourir les cellules à l'intérieur. Je pense que c'est à cause de la façon dont est écrit le code Html.
    En fait il faudrait que je puisse accéder à la dernière colonne du tableau.

    Si quelqu'un pourrait m'orienter ! Merci !

    Mon code VB :

    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
            Dim web As New HtmlWeb()
            Dim html As HtmlAgilityPack.HtmlDocument = web.Load("http://www2.fr.softcarrier.com/hbdb/sclinks/htmlkat/2/fr/html/22868.html")
     
     
            'On extrait le tableau
            For Each table As HtmlNode In html.DocumentNode.SelectNodes("//table").Where(Function(t) t.GetAttributeValue("class", "") = "im_themenkatalog_produktdaten")
                'On parcoure les lignes
                For Each row As HtmlNode In table.SelectNodes("./tr")
                    'On parcoure les cellules
                    For Each cell As HtmlNode In row.SelectNodes("./td")
                        'teste
                        Dim b = cell.InnerHtml
                    Next
                Next
            Next
    Et voici la partie html qui m’intéresse (j'ai pas tout mis, c'est plus simple!) :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
        <table width="100%" class="im_themenkatalog_produktdaten">
            <tr style="background-color: #bfbfbf">
                <td>
                    <b>Produit</b>
                    <td>
                        <b>surface de projection en mm</b>
                        <td style="text-align: right;">
                            <b>Numéro de fabricant</b>
                            <td style="text-align: right;">
                                <b>Code</b>
                                <tr style="background-color: #efefef">
                                    <td>
                                        Mobile Boden-Leinwand MW MovieLux Compact
                                        <td>
                                            1600 x 1600 - Format: 1:1
                                            <td style="text-align: right;">
                                                13037
                                                <td style="text-align: right;">
                                                    70013037
                                                    <tr style="background-color: #efefef">
                                                        <td>
                                                            Ecran de projection mobile sur pied MW MovieLux Compact
                                                            <td>
                                                                1600 x 1200 - format: 4:3
                                                                <td style="text-align: right;">
                                                                    13036
                                                                    <td style="text-align: right;">
                                                                        70013036
                                                                        <tr style="background-color: #efefef">
                                                                            <td>
                                                                                Mobile Boden-Leinwand MW MovieLux Compact
                                                                                <td>
                                                                                    1200 x 900 - Format: 4:3
                                                                                    <td style="text-align: right;">
                                                                                        13035
                                                                                        <td style="text-align: right;">
                                                                                            70013035
                                                                                            <tr style="background-color: #efefef">
                                                                                                <td>
                                                                                                    <td>
                                                                                                        1800 x 1350 - Format: 4:3
                                                                                                        <td style="text-align: right;">
                                                                                                            13038
                                                                                                            <td style="text-align: right;">
                                                                                                                70013038
                                                                                                                <tr style="background-color: #efefef">
                                                                                                                    <td>
                                                                                                                        <td>
                                                                                                                            1940 x 1460 - Format: 4:3
                                                                                                                            <td style="text-align: right;">
                                                                                                                                130390
                                                                                                                                <td style="text-align: right;">
                                                                                                                                    70130390
                                                                                                                                </td>
                                                                                                                            </td>
                                                                                                                        </td>
                                                                                                                    </td>
                                                                                                                </tr>
                                                                                                            </td>
                                                                                                        </td>
                                                                                                    </td>
                                                                                                </td>
                                                                                            </tr>
                                                                                        </td>
                                                                                    </td>
                                                                                </td>
                                                                            </td>
                                                                        </tr>
                                                                    </td>
                                                                </td>
                                                            </td>
                                                        </td>
                                                    </tr>
                                                </td>
                                            </td>
                                        </td>
                                    </td>
                                </tr>
                            </td>
                        </td>
                    </td>
                </td>
            </tr>
        </table>

  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
    Euh, mais c'est n'importe quoi ce tableau
    Les <td> sont pas supposés être imbriqués, ça n'a pas de sens...

    Pour moi, dans ce code, il n'y a qu'une seule colonne, qui contient du gros n'importe quoi

    EDIT: c'est cette page ? ça correspond pas au code que tu as posté...

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien de bureau d etude
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien de bureau d etude
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Par défaut
    Heu non pas tout a fait cela, c'est celle là exactement : Page

    Ce n'est pas tout a fait les mêmes, par contre ta page à l'air d’être mieux écrite !

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien de bureau d etude
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien de bureau d etude
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Par défaut
    En fait le code est de bonne qualité sur le site !

    C'est lorsque je récupère le noeud <Table> que celui ci est mal formaté, enfin je pense, c'est ce que je récupere dans .outerhtml ....

    La suis perdu...

  5. #5
    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
    Effectivement y a un problème... il trouve qu'une seule ligne dans le tableau, avec une seule colonne

    En fait au départ j'ai testé en chargeant le document avec HtmlWeb, mais en le faisant avec WebClient + Stream, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim wc = New WebClient()
    Dim doc = New HtmlDocument()
    Using stream = wc.OpenRead("http://www2.fr.softcarrier.com/hbdb/sclinks/htmlkat/2/fr/html/22868.html")
    	doc.Load(stream)
    End Using
    Ça ressemble fortement à un bug de HAP

    EDIT: effectivement : http://htmlagilitypack.codeplex.com/workitem/32107
    J'ai mentionné le fait que ça semble lié à HtmlWeb, mais j'ai pas l'impression que le projet soit encore maintenu...

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien de bureau d etude
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien de bureau d etude
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Par défaut
    Trop top, c'est bien ça
    Ça fonctionne mieux maintenant ! Merci !

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

Discussions similaires

  1. Recupérer contenu d'un table avec javascript
    Par solicel dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/12/2009, 22h46
  2. [Access] Nom d'une table avec un espace dans SQL
    Par Corsaire dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/04/2006, 15h50
  3. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46
  4. [syntaxe]Creation table avec nom dynamique
    Par ZuZu dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/09/2004, 18h01
  5. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11

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