Bonjour,
Mon problème est le suivant :
Avec un 1er script perl je télécharge des pages html contenant des informations que je récupère ensuite grâce à un 2eme script perl. Le 1er script fonctionne bien dans la mesure où il télécharge toutes les ressources mentionnées dans la page, comme les images, les fichiers css, les fichiers js et autres ressources repérables dans les balises du code html. Je fais grosso modo tout ça avec les modules LWP::UserAgent et WWW::Mechanize.
Cependant, depuis la présence de plus en plus massive de code javascript dans les pages que l'on télécharge, certaines données que l'on trouve par exemple dans des tables, sont récupérées par l'intermédiaire de requêtes AJAX et ne se retrouvent donc pas dans le code html que je récupère. Du coup, impossible de parser ce code pour y récupérer mes données.
C'est là que les choses deviennent un peu mystérieuses pour moi.
En effet, lorsque la page est affichée dans mon navigateur (Firefox), si je sélectionne à la souris le contenu d'une table du style mentionné plus haut, et que je fais Outils/Développeur web/Code source de la page (raccourci CTRL+U), le code correspondant à la sélection apparaît sélectionné dans une nouvelle fenêtre. En le copiant/collant à la main dans un fichier vide d'extension html, on peut voir que les données de la table figurent bien cette fois dans le code html.
C'est donc ce que je cherche à faire de manière automatique avec un script, mais celui que j'utilise n'est plus trop adapté.
Mes recherches m'ont conduit dans trop de directions à mon goût.
Quel module est le plus adapté à ce que je recherche ?
- WWW::Selenium
- Selenium::Remote :: Driver
- Mozilla::Mechanize
- JavaScript::SpiderMonkey
Et qu'en est-il des serveurs comme Selenium ou phantomjs à lancer en local pour que tout ça fonctionne.
En suivant les conseils trouvés sur différents forum, j'ai fait plusieurs essais, mais rien ne marche complètement ?
J'ai donc besoin des lumières de programmeurs avertis...
Krys006
Partager