Bonjour à tous,
Je souhaite récupérer des données d'un site web et les retranscrire sur Excel.
Je l'ai déjà fait sur un autre site, mais là je bloque sur la partie récupération de données.
Voici le code HTML de la partie qui m'intéresse :
Code html : 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
85
86
87
88
89
90
91
92
93 <div id="fiche_entreprise"> <table width="600"> Info non pertinante </table> <h4>Catégorie 1</h4> <table class="table"> <tr> <td class="fiche_tdhead">Sous-catégorie 1.A</td> <td>Donnée 1.A</td> </tr> <tr> <td class="fiche_tdhead">Sous-catégorie 1.B</td> <td>Donnée 1.B</td> </tr> <tr class="highlight"> <td class="fiche_tdhead">Sous-catégorie 1.C</td> <td>Donnée 1.C</td> </tr> </table> <H4>Catégorie 2</H4> <table class="table"> <tr class="highlight"> <td class="fiche_tdhead">Sous-catégorie 2.A</td> <td>Donnée 2.A</td> </tr> </table> <h4>Catégorie 3</h4> <table class="table chiffres"> <thead> <tr> <th style="font-style: italic;"></th> <th class="text-right"> <a href="/produits/520231929/2014/">2014</a> </th> <th class="text-right"> <a href="/produits/520231929/2013/">2013</a> </th> <th class="text-right"> <a href="/produits/520231929/2012/">2012</a> </th> </tr> </thead> <tbody> <tr><td class="">Sous-catégorie 3.A</td> <td class="text-right">Donnée 3.A.1</td> <td class="text-right">Donnée 3.A.2</td> <td class="text-right">Donnée 3.A.3</td> </tr> <tr class="highlight"><td class="label">Sous-catégorie 3.B</td> <td class="text-right">Donnée 3.B.1</td> <td class="text-right">Donnée 3.B.2</td> <td class="text-right">Donnée 3.B.3</td> </tr> </tbody> </table> <table class="table actionnaire"> <tbody> Pas d'info </tbody> </table> <h4>Catégorie 5</h4> <div id="verif_fiche_entreprise_actionnaires_filiales_coeur"> <table class="table" cellspacing="0" cellpadding="0" border="0" width="598"> <thead> <tr class="verif_fiche_entreprise_bold"> <th class="verif_labeltbl">Adresse</th> <th class="verif_labeltblbis"><span class="verif_bordbl">Téléphone</span></th> <th class="verif_labeltblbis"><span class="verif_bordbl">Fax </span></th> <th class="verif_labeltblbis"><span class="verif_bordbl">Statut</span></th> </tr> </thead> <tbody> <form action="/etablissements-secondaires//" method="POST" name="etab" id="verif_idetab"> <input type="hidden" name="nic" id="verif_idNIC" value=""> </form> <tr class="highlight"> <td height="30"> <span class="verif_repsbeltbl"> Rue </span><br/> <span class="verif_repsbeltbl">CP + Ville</span> </td> <td class="verif_bordbl">N.C.</td> <td class="verif_bordbl">N.C.</td> <td class="verif_bordbl">Actif</td> </tr> </tbody> </table> </div> </div>
Pour l'instant, j'ai pu récupérer les noms des catégories, présents dans les balises h4.
Mais je bloque sur les sous-catégories et les données, sachant que je veux associer les sous-catégories aux catégories (donc pas de récupération de l'ensemble des balises td d'un bloc, mais plutôt en partant sur une boucle For j = 1 To Nb_Categories)
J'avais pensé au children(), mais le nombre de balises h4 n'est pas toujours identique au nombre de balises table suivant la page scannée (par exemple, ici, il n'y a pas de catégorie 4).
J'avais également pensé regroupé le contenu de chaque <table> dans une variable object du style TagHtml_table(3) = contenu du 4ème bloc table, et donc de la 3ème catégorie, mais je ne sais pas comment faire.
Quelqu'un a-t-il une idée pour m'aider à sortir de cette impasse ?
Merci d'avance
Je tente le code suivant :
Ce n'est pas optimisé, mais je n'effectue pour l'instant le test que sur j=1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Set mon_elem = IEDoc.all("fiche_entreprise") For j = 1 To nbCat Set TagHtml_tr = mon_elem.Children(1 + j).all 'Pour j=1, on liste la 1ère balise table Set TagHtml_tr = TagHtml_tr.getElementsByTagName("tr") 'On liste les éléments de type tr (chaque balise <tr ...> contient le nom d'une sous-catégorie et la donnée correspondante)
Pourquoi ai-je une erreursur la dernière ligne ?Propriété ou méthode non gérée par cet objet
Partager