Récupération sources de données

Aujourd’hui on parle récupération de données autour du tennis et on reprend les quelques analyses la semaine prochaine!

1️⃣ La source de donnée :
Je l’ai assez vite identifié, le graal ultime, la mine d’or : le site de l’ATP tour! Il y a absolument tout sur tous les joueurs!
Maintenant la question est de savoir comment récupérer ces stats.. Il n’y a pas d’API à priori donc je me tourne vers du scrapping

2️⃣ Scraping de la source :
Je me dis que ça ne va pas être de la tarte mais plein de courage et bien aidé par Chat GPT je me lance !
Je test des outils de scrapping qui se revendique tous plus simple et facile à utiliser les uns que les autres mais finalement c’est un échec.
J’ai presque cru qu’un simple « IMPORTHTML » dans un Google sheet allait m’aider… Mais non…

Je me décide à tester avec un script Python et après une trentaine d’essaie infructueux, j’ai quelque chose qui tourne bien avec Beautiful Soup ! Ça marche mais ce n’est quand même pas terrible. J’ai des bugs et surtout je dois adapter le script aux types de pages sur le site de l’ATP tour.

C’est la que mon sauveur arrive : Jeff Sackmann 😎

3️⃣ Base de JeffSackmann
Cher monsieur Jeff (je ne sais pas si vous parlez français) merci ! Vous avez réussi la où j’ai échoué pour exporter toutes les données de l’ATP tour!
(Votre site en 1er commentaire)
Je trouve sur votre GitHub tout ce que je cherche et je vais commencer par : l’historique du top 1000 par semaine depuis 1973

4️⃣ Export et traitement
J’ai récupéré 1 fichiers csv avec ces données par décennie soit 6 fichiers et un table de correspondance avec des ID de joueurs et autres infos sur chacun d’eux (taille, age…)

⚙ Stockage des données dans Google Cloud Plateforme
⚒ Traitement dees données dans BigQuery

Au final j’ai récupéré une base de 3M de lignes avec le top 1000 par semaine. Tout est en place pour l’analyse

5️⃣ Analyses

Quelques idées à creuser :
➡ Part de joueur droitier ou gaucher par top (10, 100, 1000)
➡ Taille moyenne top 100 par an
➡ Top 3 nationalité par an par top (10, 100, 1000)