récupérer le contenu d'une variable JS [Perl / JS] [contourné] - Perl - Programmation
Marsh Posté le 03-04-2011 à 08:48:40
Bonjour,
En attendant de l'aide, j'ai continué à chercher.
Je n'ai pas trouvé la solution, mais j'ai réussi à contourner le problème... Pour ceux que cela intéresserait, voilà l'idée :
J'utilise WWW::Mechanize::Firefox, mais comme je n'arrive pas à acceder aux variables JS (et dans le code Mappy, j'ai un peu du mal à trouver ce qu'il faut utiliser !), j'enregistre la page dans un fichier temporaire :
$navigateur->save_content('/tmp/itineraire.html'); |
La sauvegarde enregistre le texte tel qu'il apparaît à l'écran. Après, il ne me reste qu'à chercher la bonne portion de texte dans le fichier temporaire, et c'est bon.
Ca prend un peu de temps, mais j'arrive à extraire un tableau d'adresses et à le classer par éloignement (en temps de parcours) d'un point...
Marsh Posté le 03-04-2011 à 14:36:00
J'ai jeté un oeil à WWW::Mechanize::Firefox, mais il m'a fallu
1) le compiler et l'installer sur mon PC (avec cpan, mais ça a pris pas mal de temps)
2) Installer le module MozRepl (béta) sur Mozilla
3) Lancer Mozilla, puis depuis la section Outils démarrer le service MozRepl
4) Tester ce script:
Code :
|
Pour voir qu'on se choppait des erreurs.
Le js dans les pages, ça a toujours été un des pbs avec Mechanize.
Bon, j'ai pas trop testé depuis au moins 6 mois, ça marche peut être mieux ces temps ci.
A+,
Marsh Posté le 29-03-2011 à 22:48:51
Bonjour,
Je voudrais faire un script Perl pour récupérer le temps de parcours entre 2 adresses, calculé par le site mappy.
Mon script génère l'url en fonction du trajet, par exemple :
[url]http://fr.mappy.com/itinerary#d[]=Bourg-en-Bresse,+01000&d[]=Laon,+02000&ipv=carcom[/url]
(tiens, l'url ne passe pas si il y a des crochets dedans)
Le résultat (ici 4h35) est fournit par une variable {time} utilisée dans une fonction javascript : http://v3.x.mappy.com/static/js/addons_mappy_v3.js?pSm. Lorsqu'on regarde le code de la page, on voit pas la durée en clair.
Comment puis-je la récupérer dans mon script ?
Mes recherches m'ont conduit vers WWW::Mechanize, WWW::Scripter et WWW::Scripter::Plugin::JavaScript, mais je ne sais pas trop comment les utiliser pour récupérer cette donnée.
(Je découvre le Perl depuis quelques jours)
Pourriez vous me donner des indications, s'il vous plaît ?
Je vous remercie
Message édité par Mazzhe le 03-04-2011 à 08:39:42