Ze strony https://www.rugbyworldcup.com/teams/TEAM
(gdzie TEAM = england, georgia itd) można ściągnąć dane każdej drużyny. Ja ściągnąłem 14 września wszystkie 20 stron dla 20 drużyn biorących udział w turnieju i się okazało po obejrzeniu pliku od środka, że w każdym jest explicite dołączony JavaSciptowy fragment zawierający dane dotyczące zawodników. (Teraz wygląda na to, że zmieniono sposób generowania stron i JavaScriptowej wstawki nie ma.)
Jeżeli chodzi o statystki meczów, to startową jest strona https://www.rugbyworldcup.com/matches
, z której zwykłym grepem można wydłubać URLe do wszystkich 48 meczy. Ten plik zawiera też opisy meczów w formacie JS (kto gra z kim i kiedy), dzięki czemu można ściągnąć pliki dla poszczególnych meczów w bardziej cwany sposób. Ja zrobiłem skrypt w Perlu, który tworzy plik .sh ściągający wszystkie mecze:
## ściąga tylko mecz rozegrany TODAY if [ "$TODAY" = "20190921" ]; then echo 'Download: France-Argentina => France_Argentina_0921_25292_.html' selenium_get_www_page.py 'https://www.rugbyworldcup.com/match/25292' > France_Argentina_0921_25292_.html ## wyciąga statystyki i zapisuje do pliku .csv perl html2csv.pl -f France_Argentina_0921_25292_.html > France_Argentina_0921_25292_.csv fi
Idea była taka żeby dodać plik do Crontaba na nafisie (czyli raspberry). Codziennie po południu by się odpalał i ściągał mecze rozegrana tego dnia. Plik HTML jest deklarowany jako xhtml i nawet jest poprawny (well-formed). Dzięki temu dość sprawnie udało mi się zrobić skrypt html2csv.pl
, który wydłubuje wszystkie dane meczowe i dopisuje je do pliku w formacie CSV.
Przedostatnim krokiem jest uruchomienie skryptu R, który rysuje 6 wykresów słupkowych dla najważniejszych statystyk.
Ostatnim zaś krokiem wysyłanie tego co zrobił R na twittera (za pomocą tweepy
, codziennie wieczorem).
Baza danych z RWC 2019 jest tutaj.
Niezła kombinacja
OdpowiedzUsuń