Bonjour,
J'ai un petit souci technique : des données apparaissent avec le même champ et je voudrais récupérer les 2 valeurs correspondantes.
Voici un extrait de ma soupe :
Je voudrais par exemple récupérer les valeurs correspondant à "Bac Général", donc le 17 et le 4 (en fait, il y a d'autres champs et un champ peut apparaître 0 fois, 1 fois ou 2 fois maxi pour cette année).
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 <table class="btable" data-table-export="true" data-table-export-format="csv,excel,print" data-table-export-nom="Total des types de bac par voeux" data-table-fixheader="false" data-table-page-info="false" data-table-pagination="false" id="statistiques_6451"> <thead> <tr> <th data-colonne-filtre="select">Série de bac (ou diplômes équivalents)</th> <th data-colonne-filtre="select">Type de bac</th> <th class="indicateurs">Nombres de candidats</th> </tr> </thead> <tbody> <tr> <td>Séries du bac français</td> <td>Bac ES</td> <td class="chiffres">2</td> </tr> <tr> <td>Séries du bac français</td> <td>Bac Général</td> <td class="chiffres">17</td> </tr> <tr> <td>Séries du bac français</td> <td>Bac L</td> <td class="chiffres">1</td> </tr> <tr> <td>Séries du bac français</td> <td>Bac S</td> <td class="chiffres">5</td> </tr> <tr> <td>Diplômes étrangers</td> <td>Bac général</td> <td class="chiffres">4</td> </tr> <tr>
Pour l'instant, je bricolais avec cela qui fonctionnait car un champ n'apparaissait qu'une fois.
Je sais que c'est pourri mais j'avais la flemme de tout refaire et au fur et à mesure de mes besoins, je l'ai adapté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 soup21 = BeautifulSoup(contenu21, 'html.parser') tab21 = soup21.find_all('table', class_ = "btable") elem21 = [] for el1 in tab21: el2_bis = el1.find_all("td") for el3_bis in el2_bis: if (el3_bis.text != "Séries du bac français" and el3_bis.text != "Diplômes étrangers"): elem21.append(el3_bis.text) elem21=[elem21[i:i+2] for i in range(0,len(elem21),2)] for el4 in elem21: if el4[0] == 'Bac général': liste_ETR_G = int(el4[1])
J'imagine qu'il faudrait que je refasse tout avec ce que j'ai acqui au long de ces années mais pour l'instant je travaille dans l'urgence, donc en bricolant encore...
Partager