Programmer en R/Extraire des données d'une page web
Apparence
Les fonctions read_html
et read_xml
permettent de récupérer et interpréter un contenu au format HTML ou XML, respectivement.
Syntaxe
[modifier | modifier le wikicode]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).
Exemple
[modifier | modifier le wikicode]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")