Mon son du moment est le titre Sweet Mary du virtuose bassiste Richard Bona. En réécoutant ce son pour une énième fois, j’ai fini par me poser comme question si le Cameroun n’était pas une Terre de bassistes, vue le nombre d’illustres bassistes qu’a connu ce pays.
Le Cameroun est-elle une Terre de bassistes?
Pour tirer au clair cette idée naissante dans mon esprit, j’ai fini par trouver cette page Wikipédia . Le Scraping de cette page Web me permettra d’avoir une réponse à mon questionnement.
Mise en oeuvre du Scraping avec R
Le scraping sous R se fait actuellement via le package rvest. La phase la plus importante est l’analyse de la page web à « scraper ». Le SelectorGadget est une extension de google chrome très importante pour cette tâche. Une connaissance des sélecteurs ccs est un plus.
rm(list=ls()) # Packages # # ----------------------------------------------------------------------- library("rvest") library("plyr") library("ggplot2") # # ---------------------------------------------------------------------- # Page Web à scraper HTML_Cible <- "https://fr.wikipedia.org/wiki/Liste_de_bassistes_par_pays" # Encoding de la pagee Web... guess_encoding(read_html(HTML_Cible)) # Structure de ma page Web ... Web_Read <- HTML_Cible %>% read_html(encoding = "UTF-8") # Vérification de l'extraction de la liste des continents de la page Web... Continents <- Web_Read %>% html_nodes("h2 .mw-headline a") %>% html_text() # Vérification de l'extraction de la liste des pays Pays <- Web_Read %>% html_nodes(".flagicon+ a") %>% html_attr( name = "title") # Vérification de l'extraction de la liste des artistes ... # Noeud retenu pour l'extraction des artistes ... Artistes <- Web_Read %>% html_nodes("p+ ul li , h3+ p , ul:nth-child(46) li , #mw-content-text h3+ ul li") %>% html_text()
Après avoir tester que les différentes composantes souhaitées (artistes, pays, continent) s’extraient correctement, je peux passer à l’analyse des données extraites.
Résultat du scraping
Les 10 pays comportant le plus de bassistes sont les suivants :
# Les 10 pays présentant le plus de bassistes ... > head(Stats_DataF,10)
Continent | Pays | freq | |
1 | Amérique | États-Unis | 245 |
2 | Europe | Royaume-Uni | 138 |
3 | Europe | France | 94 |
4 | Afrique | Cameroun | 28 |
5 | Asie | Japon | 28 |
6 | Amérique | Jamaïque | 26 |
7 | Amérique | Canada | 23 |
8 | Europe | Finlande | 18 |
9 | Europe | Suède | 15 |
10 | Europe | Allemagne | 14 |
11 | Océanie | Australie | 11 |
12 | Afrique | République démocratique u Congo | 7 |
13 | Europe | Pologne | 7 |
14 | Amérique | Cuba | 6 |
15 | Europe | Norvège | 6 |
ggplot(data = Stats_DataF[1:10,], aes(x= Pays, y= freq)) + geom_bar(stat="identity") + ggtitle("Listes des 10 pays ayant le plus de bassistes\n d'après Wikipédia.")
Les, USA sont, selon Wikipédia, le pays comportant le plus de bassistes.
Un simple Scraping via R m’a permis de sauver la face.
Le Cameroun est, selon Wikipédia, la terre africaine des bassistes.