Récupérer sous R la valeur d'une fonction Javascript

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Isabelle Ferrières
Messages : 1
Enregistré le : 10 Aoû 2010, 13:16

Récupérer sous R la valeur d'une fonction Javascript

Messagepar Isabelle Ferrières » 03 Sep 2010, 10:11

Bonjour

J'essaie d'écrire un script R permettant de calculer la distance entre 2 adresses en utilisant Mappy. Pour ce faire, je me suis fortement inspirée de la méthode décrite par Jean Lobry - que je remercie au passage pour ses tutos toujours très clairs - dans son TP sur les paramètres graphiques de R : http://pbil.univ-lyon1.fr/R/pdf/tdr75.pdf
Le problème auquel je me heurte est que R lit le code source en format HTML ; or, Mappy (mais aussi Google maps et Viamichelin) fait appel à des fonctions Javascript. Sous R, je ne récupère donc qu'une page qui appelle des fonctions, sans que la valeur recherchée n'apparaisse en clair. Y a-t-il un moyen d'obtenir cette valeur ?

Merci pour votre aide,

Isabelle Ferrières.

Pour info, voici le code que j'ai écrit jusque-là :

Code : Tout sélectionner

adresseindividu<-function(x,codepostal,ville){
adrenc<-URLencode(x)
y<-unlist(strsplit(adrenc,"%20"))
z<-y[is.na(as.numeric(y))==TRUE]
adrindividu<-NULL
adrindividu<-paste(",+",z[1],sep="")
for (i in 2:length(z))
adrindividu<-paste(adrindividu,",+",z[i],sep="")
adrindividu<-paste(adrindividu,",+",codepostal,",+",ville,",+Bourgogne,+France",sep="")
return(adrindividu)
}

adrcentre<-function(x,codepostal,ville)
{
adrenc<-URLencode(x)
y<-unlist(strsplit(adrenc,"%20"))
z<-y[is.na(as.numeric(y))==TRUE]
adrcentre<-paste(",+",z[1],sep="")
for (i in 2:length(z))
adrcentre<-paste(adrcentre,",+",z[i],sep="")
adrcentre<-paste(adrcentre,",+",codepostal,",+",ville,sep="")
return(adrcentre)
}
individu<-adresseindividu("rue jules ferry","21000","dijon")
centre<-adrcentre("rue de l'arquebuse","21000","Dijon")
distanceaucentre<-function(adresse,individu){
   urlres<-"http://fr.mappy.com/itinerary#d[]=Dole,+39100,+Franche-Comt%C3%A9,+France&d[]=Rue+de+Dijon,+25000,+Besan%C3%A7on,+Franche-Comt%C3%A9,+France&lm=r&ipnp=1&p=itinerary"
   urldeb<-unlist(strsplit(urlres,"Dole"))[1]
   urlmilieulong<-unlist(strsplit(urlres,"+France"))[2]
   urlmilieu<-unlist(strsplit(urlmilieulong,"Rue"))[1]
   urlmilieulong<-NULL
   urlfin<-unlist(strsplit(urlres,"+France"))[3]
   urlres<-paste(urldeb,pat,urlmilieu,centre,urlfin,sep="")
   res<-readLines(urlres)
###récupération du chiffre d'intérêt : dist<-... : c'est là que le bât blesse
   return(dist)
}

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité