Scraping golf

Bonjour,
je suis chercheur en chronobiologie et je voudrais voire si la performance en golf dépend du jetlag
mon objectif est de recuperer les statistiques présentent dans le tableau
TOURNAMENT STATISTICS
sur l’exemple de lien ci dessous

mais aussi le nom du joueur, le nom du tournois, et la date.

et ainsi de suite pour tous les tournois de toutes les années possibles via les deux menus déroulant (et aussi éventuellement tous les joueurs mais au pire je pourrais faire le changement de joueur à la main)

bon j’ai essayé en java, python mais j’y connais rien j’ai tenté VBA et j’ai bien avancé
mais IE n’ouvre plus correctement les page (enfin dimanche oui depuis lundi non ??) et je n’ai plus accès au menu tournois et année.

j’ai éssayé rstudio pas génial, des logiciels de scrapping et pour finir
webscrapper qui fonctionnait pour une année mais qui plante lorsque on ajoute le selecteur d’année (peut être car pour certaine année il manque des datas ?)

je galère ca fait 5 jours que je suis à temps plein la dessus, j’ai même appeler PGA mais impossible d’avoir une personne direct au tel et pas de mail.

ci dessous l’export de webscrapper:

{"_id":« golf »,« startUrl »:[« https://www.pgatour.com/players/player.47504.sam-burns.html/scorecards/r475/2022"],« selectors »:[{« id »:« tabstat »,« parentSelectors »:[« roll »],« type »:« SelectorTable »,« delay »:0,« multiple »:true,« selector »:".holder table »,« tableDataRowSelector »:« tbody tr »,« tableHeaderRowSelector »:« thead tr »,« columns »:[{« extract »:true,« header »:« ROUND 1 »,« name »:« ROUND 1 »},{« extract »:true,« header »:« ROUND 2 »,« name »:« ROUND 2 »},{« extract »:true,« header »:« ROUND 3 »,« name »:« ROUND 3 »},{« extract »:true,« header »:« ROUND 4 »,« name »:« ROUND 4 »},{« extract »:true,« header »:« TOTAL »,« name »:« TOTAL »},{« extract »:true,« header »:« RANK »,« name »:« RANK »}]},{« id »:« name »,« parentSelectors »:[« roll »],« type »:« SelectorText »,« selector »:« span.player-name »,« multiple »:false,« delay »:0,« regex »:""},{« id »:« tour »,« parentSelectors »:[« roll »],« type »:« SelectorText »,« selector »:« h2 »,« multiple »:false,« delay »:0,« regex »:""},{« id »:« date »,« parentSelectors »:[« roll »],« type »:« SelectorText »,« selector »:« span.date »,« multiple »:false,« delay »:0,« regex »:""},{« id »:« roll »,« parentSelectors »:[« years »],« type »:« SelectorElementClick »,« clickElementSelector »:« div.tournament-select select option »,« clickElementUniquenessType »:« uniqueCSSSelector »,« clickType »:« clickOnce »,« delay »:500,« discardInitialElements »:« discard-when-click-element-exists »,« multiple »:true,« selector »:« body »},{« id »:« years »,« parentSelectors »:["_root"],« type »:« SelectorElementClick »,« clickElementSelector »:« div.year-select select option »,« clickElementUniquenessType »:« uniqueCSSSelector »,« clickType »:« clickOnce »,« delay »:1000,« discardInitialElements »:« do-not-discard »,« multiple »:true,« selector »:« body »}]}

Salut,

tu as toutes les stats de tous les joueurs pendant tous les tournois sur l’année 2022 ici:

https://statdata.pgatour.com/r/475/2022/player_stats.json

à toi de faire le tri sur les données !

edit: tu peux changer l’année directement dans le lien pour avoir les données des années précédentes

SAlut et merci beaucoup,
je crois qu’il y a les stats de tous les joueurs mais que pour un tournois. Cependant c’est déja super.
je pense m’en sortir avec cela avec un peu de travail.
merci encore

Effectivement, j’ai pas fait assez attention : https://statdata.pgatour.com/r/475/2022/player_stats.json renvoie les stats de 2022 pour le tournoi numéro 475. Essaie de trouver comment sont numérotés les tournois et en changeant direct dans l’URL tu auras accès aux autres !

edit :

image

tu as dans le code de la page du joueur que tu as envoyée les valeurs de chaque tournoi (054 pour Sanderson Farms Championship par exemple)

oui merci j’ai recuperé tous les codes pour pgatour pour 2021-2022 sur la page du schedule:

c’est dans la colonne links.
le problème c’est que je n’ai plus cette colonne sur les années précédentes.
r c’est le tours (pga = r korn ferry = h,…) et ensuite le il y a le numero du tournois .
si je dois passer par les joueurs ca va être galère car ils ne font pas tous les tournois mais si faut le faire…

J’ai réussi à scraper plusieurs tournois sur plusieurs années pour plusieurs joueurs, il y a quelques stats pour débuter : Statistiques Golf - Google Spreadsheets

Merci titan ca fait une masse impressionnante de data.
idéalement il faudrait mettre les stats de perf en ligne et les rounds en colonne
peut tu me donner le code, tu as fait ca avec quoi ?
Il me faudrait la date du tournois si possible. En fait pour voir l’effet du jetlag il faut que je mesure ce jetlag donc il va falloir que je détermine l’heure UTC pour chaque tournois. Mais aussi il faut que je m’assure que les joueurs était à un tournois X, 4 jours avant le tournois X+1.
En fait la plupart des tournois se font sur 4 jours du jeudi au dimanche mais au bout du ROUND 2 (le vendredi) il y a le « CUT » seul les 80 meilleurs environs restent pour le round 3 et 4 (samedi et dimanche). donc ceux qui ne passent pas le CUT peuvent être au tournois X+1 beaucoup plutôt et donc être adapté au jetlag. Bref au final je vais garder que les données pour les joueurs/tournois ayant passer le cut au tournois précèdent (donc round 3 et 4) et ceci dans les 4 jours précèdent ( Les joueurs n’enchainent pas sans cesse, des fois ils se posent ou font d’autres tournois hors pgatour).

il faudrait mettre les stats de perf en ligne et les rounds en colonne

As-tu un exemple à me donner, je ne vois pas trop comment faire ça avec un fichier CSV, peut être du JSON alors.

Il me faudrait la date du tournois si possible.

Je n’ai pas vu la date des tournois dans le JSON si tu m’indiques ou elle est je peux essayer de la récupérer.

ah tu utilises le lien json de paul780 il n’y a pas la date il me semble mais il n’y a pas le nom du tournois non plus il me semble ? tu les as trouvé ou ?

pour les dates elles sont ici

Ce sujet a été automatiquement fermé après 365 jours. Aucune réponse n’est permise dorénavant.