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.")

 

bassistes

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.