Aller au contenu

Programmer en R/Extraire des données d'une page web

Un livre de Wikilivres.

Les fonctions read_html et read_xml permettent de récupérer et interpréter un contenu au format HTML ou XML, respectivement.

read_xml(x, encoding = "", ..., as_html = FALSE, options = "NOBLANKS")

read_html(x, encoding = "", ..., options = c("RECOVER", "NOERROR", "NOBLANKS"))

Les paramètres sont les suivants :

x
Plusieurs types possibles :
  • Une chaîne de caractère représentant soit l'URL, soit le contenu lui-même,
  • Une connexion ouverte, auquel cas tout le contenu est lu dans un vecteur avant interprétation.
Si un chemin local se termine par une des extensions .gz, .bz2, .xz, .zip, le fichier est automatiquement décompressé.
encoding
Encodage par défaut. S'il n'est pas spécifié, la fonction détecte les encodages UTF-8 ou UTF-16.
as_html
Booléen indiquant d'interpréter le contenu au format HTML plutôt que XML.
options
Série d'options d'interprétation :
  • RECOVER : Récupération en cas d'erreur,
  • NOENT : Substituer les entités (& " ...),
  • DTDLOAD : Charger les DTD externes,
  • DTDATTR : Attributs DTD par défaut,
  • DTDVALID : Valider la syntaxe du contenu avec la DTD,
  • NOERROR : Supprimer les rapports d'erreur,
  • NOWARNING : Supprimer les rapports d'avertissement,
  • PEDANTIC : Vérification moins stricte,
  • NOBLANKS : Enlever les nœuds vides,
  • SAX1 : Utiliser l'interface SAX1 en interne,
  • XINCLUDE : Implémenter la substitution XInclude
  • NONET : Empêcher la connexion réseau (n'autorise qu'un chemin local),
  • NODICT : Ne pas réutiliser le dictionnaire de contexte,
  • NSCLEAN : Enlever les déclarations redondantes d'espaces de noms,
  • NOCDATA : Fusionner les CDATA comme nœuds de texte,
  • NOXINCNODE : Ne pas générer de nœuds XINCLUDE START/END,
  • COMPACT : Compacter les nœuds textes de petite taille ; modifications de l'arborescence non autorisées par la suite, sinon un plantage est possible,
  • OLD10 : Interpréter en utilisant XML-1.0 avant la mise à jour 5,
  • NOBASEFIX : Ne pas réparer les URIs de base (xml:base) XINCLUDE,
  • HUGE : Relâcher les contraintes de l'interpréteur,
  • OLDSAX : Utiliser l'interface SAX2 avant 2.7.0 en interne,
  • IGNORE_ENC : Ignore les indications d'encodage du document,
  • BIG_LINES : Stocker les grands nombres de lignes dans un champ texte PSVI (Post-Schema-Validation Infoset).

L'exemple suivant récupère le contenue d'une page HTML, en passant l'URL et l'encodage par défaut à la fonction read_html :

wikibooks <- read_html("https://fr.wikibooks.org/wiki/Accueil", encoding = "UTF-8")