Closed Yzeghal closed 1 year ago
Faire un code qui supprime les cases vides d'une page, dont la quantité varie selon la compétition
Problème résolu en identifiant le début de la table de résultats individuels à l'aide de la liste des catégories (attribut le plus robuste a priori)
Les pages de résultats de base.athle possèdent toutes la même forme, mais les en-têtes et les informations sur les différentes courses diffèrent en termes de contenu. Par exemple, il peut y avoir les classements des équipes dans l'en-tête, ce qui rend le scraping complexe, puisqu'il faut différencier ces résultats des résultats individuels. Des informations supplémentaires sur les compétitions (société de chronométrage, etc.) peuvent être présentes dans l'en-tête également.
Hello. J'ai trouvé une petite faille lors de la construction de la table les listes qui formeront les colonnes "athletes" et "temps" sont nettoyées de leurs valeurs vides bloc 26 : athletes=[x for x in athletes if x!=[]] bloc 28 : temps=[x for x in temps if x!=[]] Mais les listes qui formeront les colonnes "ligue", "perf", "clubs" ne sont pas nettoyées d'où bloc 37 : len(athletes), len(perfs), len(ligue), len(clubs) =>(250, 257, 257, 257)
Lors de la construction de la table, on fait attention au décalage des indices 👍 bloc 36 liste=[] debut=len(ligue)-len(athletes)-1 for i in range(len(athletes)): ligne=[] ligne.append(athletes[i][0]) ligne.append(ligue[i+debut]) ligne.append(temps[i]) ligne.append(perfs[i+debut]) liste.append(ligne)
Mais rien ne nous assure que cette structure ( rangs vides au début + rangs vides à la fin sera respectée). Il faut s'attendre à des noms ou des temps mal rentrés qui feraient tout décaler. (Les temps sont rentrés à la main par une personne qui pourrait taper "entrée" sans rien rentrer par ex) Je propose donc qu'on construise le data frame en gardant les cases vides, et en les nettoyant après, de sorte à être certain qu'on a pas tout décalé. Je sors des updates pour les blocs concernés.