Downloads from the RStudio CRAN mirror

The goal of ralger is to facilitate web scraping in R.

Installation

You can install the ralger package from CRAN with:

or you can install the development version from GitHub with:

scrap()

This is an example which shows how to extract firms denomination from the website of the Algerian Chamber of Commerce and Industry (CACI). For simplicity, we’ll focus on firms operating within the capital (Algiers).

If you want to scrap multiple list pages, just use scrap() in conjunction with paste(). Suppose, we want to extract the above information from the first 3 pages (starts from 0):

my_link <- "http://elmouchir.caci.dz/search_results.php?keyword=&category=&location=Alger&submit=Trouver&page=" 

my_node <- ".listing_default"

scrap(paste(my_link, 0:2), my_node)
#>  [1] "Esasoud Welding And Cutting"                                                
#>  [2] "Huan Yu"                                                                    
#>  [3] "HRLI"                                                                       
#>  [4] "Dar El Hikma"                                                               
#>  [5] "Trans Canal Centre / Khemis El Khechna"                                     
#>  [6] "Direction Régionale Centre / Ex Trans Canal Centre"                         
#>  [7] "Egt Sidi Fredj / Club Azur Plage"                                           
#>  [8] "EGT Zeralda / Entreprise de Gestion Touristique de Zeralda"                 
#>  [9] "SPE / Sociéte Algérienne de Production d’Electricité"                       
#> [10] "GRTG / Société Algérienne de Gestion du Réseau de Transport  de Gaz"        
#> [11] "GRTE  / Société Algérienne de Gestion du Réseau de Transport de Electricité"
#> [12] "Clef du Sud"                                                                
#> [13] "Adrien.Dz"                                                                  
#> [14] "MPV"                                                                        
#> [15] "SCAL / La Société des Ciments de l'Algérois"                                
#> [16] "EVSM / Entreprise de Viabilisation de Sidi Moussa"                          
#> [17] "Chambre d'Agriculture de la Wilaya d'Alger / CNA"                           
#> [18] "VERITAL/ Direction Générale"                                                
#> [19] "Wilaya d'Alger"                                                             
#> [20] "Officine Abeille"                                                           
#> [21] "Esasoud Welding And Cutting"                                                
#> [22] "Huan Yu"                                                                    
#> [23] "HRLI"                                                                       
#> [24] "Dar El Hikma"                                                               
#> [25] "Trans Canal Centre / Khemis El Khechna"                                     
#> [26] "Direction Régionale Centre / Ex Trans Canal Centre"                         
#> [27] "Egt Sidi Fredj / Club Azur Plage"                                           
#> [28] "EGT Zeralda / Entreprise de Gestion Touristique de Zeralda"                 
#> [29] "SPE / Sociéte Algérienne de Production d’Electricité"                       
#> [30] "GRTG / Société Algérienne de Gestion du Réseau de Transport  de Gaz"        
#> [31] "GRTE  / Société Algérienne de Gestion du Réseau de Transport de Electricité"
#> [32] "Clef du Sud"                                                                
#> [33] "Adrien.Dz"                                                                  
#> [34] "MPV"                                                                        
#> [35] "SCAL / La Société des Ciments de l'Algérois"                                
#> [36] "EVSM / Entreprise de Viabilisation de Sidi Moussa"                          
#> [37] "Chambre d'Agriculture de la Wilaya d'Alger / CNA"                           
#> [38] "VERITAL/ Direction Générale"                                                
#> [39] "Wilaya d'Alger"                                                             
#> [40] "Officine Abeille"                                                           
#> [41] "Esasoud Welding And Cutting"                                                
#> [42] "Huan Yu"                                                                    
#> [43] "HRLI"                                                                       
#> [44] "Dar El Hikma"                                                               
#> [45] "Trans Canal Centre / Khemis El Khechna"                                     
#> [46] "Direction Régionale Centre / Ex Trans Canal Centre"                         
#> [47] "Egt Sidi Fredj / Club Azur Plage"                                           
#> [48] "EGT Zeralda / Entreprise de Gestion Touristique de Zeralda"                 
#> [49] "SPE / Sociéte Algérienne de Production d’Electricité"                       
#> [50] "GRTG / Société Algérienne de Gestion du Réseau de Transport  de Gaz"        
#> [51] "GRTE  / Société Algérienne de Gestion du Réseau de Transport de Electricité"
#> [52] "Clef du Sud"                                                                
#> [53] "Adrien.Dz"                                                                  
#> [54] "MPV"                                                                        
#> [55] "SCAL / La Société des Ciments de l'Algérois"                                
#> [56] "EVSM / Entreprise de Viabilisation de Sidi Moussa"                          
#> [57] "Chambre d'Agriculture de la Wilaya d'Alger / CNA"                           
#> [58] "VERITAL/ Direction Générale"                                                
#> [59] "Wilaya d'Alger"                                                             
#> [60] "Officine Abeille"

tidy_scrap()

If you want to extract a dataframe from a web page, you can use the tidy_scrap() function which returns a tidy dataframe according to the arguments that you introduce. The function takes four arguments:

  • link : the link of the website you’re interested for
  • nodes: a vector of CSS elements that you want to extract. These elements will form the columns of your dataframe
  • colnames: this argument represents the vector of names you want to assign to your columns. Note that you should respect the same order as within the nodes vector
  • clean: if true the function will clean the tibble’s columns.