Kirscher / ResultAthle

Scraping, visualisation et analyse de résultats d'athlétisme depuis le site bases.athle de la FFA
MIT License
11 stars 2 forks source link

[SCRAP] - Robustesse face à l'erreur de remplissage de la table #17

Closed Yzeghal closed 1 year ago

Yzeghal commented 1 year ago

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.

Kirscher commented 1 year ago

Faire un code qui supprime les cases vides d'une page, dont la quantité varie selon la compétition

Kirscher commented 1 year ago

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.

image