Bonjour,
Je cherche à extraire des données d’un site web pour apprendre à utiliser le package « XML » et « CSS ».
En utilisant la fonction htmlParse dans une boucle, mon script plante et me renvoie cette erreur :
Error in value == defs : 'value' is missing
Traceback :
9. which(value == defs)
8. getEnumValue(code, xmlParserErrors)
7. makeXMLError(msg, code, domain, line, col, level, filename, class)
6. (function (msg, code, domain, line, col, level, filename, class = "XMLError") { e = makeXMLError(msg, code, domain, line, col, level, filename, class) dom = names(e$domain) class(e) = c(names(e$code), sprintf("%s_Error", gsub("_FROM_", "_", dom)), class(e)) if (e$code == xmlParserErrors["XML_IO_LOAD_ERROR"]) stop(e) })(character(0))
5. htmlParse(getURI(l)) #(l est un url devant être lu)
4. xpathApply(doc, path, fun, ..., namespaces = namespaces, resolveNamespaces = resolveNamespaces, addFinalizer = addFinalizer)
3. xpathSApply(htmlParse(getURI(l)), "id('nom_jeu')/h1/b", xmlValue)
2. data.frame(Machine = nomsMachines, Nom_Jeux = xpathSApply(htmlParse(getURI(l)), "id('nom_jeu')/h1/b", xmlValue), Graphismes = 0, Jouabilité = 0, `Durée de vie` = 0, `Bande son` = 0, Scénario = 0)
1. CreationBaseDonnee(NomsMachines) #(Fonction que j’ai créé qui extrait des données de plusieurs pages internet)
Je n’arrive pas à comprendre cette erreur car elle n’apparait pas quand je donne les urls un à un à ma fonction. Il y a plus de 7000 urls à lire, infaisable manuellement.
Selon l’aide interne de R, j’ai cru comprendre que le nombre d’url lu étaient limité à 128 en même temps. J’ai pensé que les urls n’étaient pas correctement déchargés de la mémoire. J’ai rajouté la fonction closeAllConnections() pour m’assure que chaque url lu était correctement déchargé après sont utilisation. Toutefois, cela ne fonctionne toujours pas.
De plus, je n’arrive pas à atteindre les fonctions décrites dans les parties allant de 6 à 9. Je commence seulement à utiliser les package XML et CSS, donc je ne vois pas du tout à quoi elles se réfèrent.
J’ai vu que sur ce forum, le même souci a été soulevé mais il est resté sans réponse.
Quelqu’un pourrait il m’expliquer pourquoi cela ne fonctionne pas où me renvoyer vers des ressources permettant d’élucider ce problème ?
Merci d’avance
Partager