Robot web en perl et ajax - Perl - Programmation
Marsh Posté le 25-01-2010 à 03:08:04
Bon, je me réponds à moi même, WWW::Scripter semble faire le coup.
Par contre je n'obtiens que ceci au lieu de la valeure générée par le javascript :
Citation : |
Voici une URL si vous voulez tester : http://www.sputnick-area.net/scripts/js.html
Et voici mon script :
Code :
|
J'arrive tres bien à le faire de cette façon là, mais c'est pas ce qui m'interesse : ( j'implement les calculs du JS en perl )
Code :
|
Marsh Posté le 25-01-2010 à 13:24:33
Tu serais sous Windows, Win32::IE::Mechanize ferait automatiquement le boulot du fait de son implémentation. Mais je ne crois pas qu'il y ait grand chose pour ce faire avec perl sous Linux (il faut ajouter a la fois une implementation DOM et un interpréteur javascript).
J'ai regardé WWW::Scripter et WWW::Scripter::Plugin::JavaScript. Peut être qu'en recupérant le code entre les balise javascript et en appelant eval dessus, cela ferait avancer les choses, mais j'ai pas testé. Mon implem (active state) n' a pas les modules WWW::Scripter::Plugin::JavaScript et JE de dispo, donc je n'ai pas été voir plus loin.
A+,
Marsh Posté le 24-01-2010 à 02:50:01
Salut,
je développe pas mal de bot en perl, principalement grace a WWW::Mechanize ( mech pour les intimes ).
Je me trouvait souvent bloqué dès que le contenu que je cherchait à récupérer était généré par du javascript.
Entre temps, j'ai fais la découverte de Selenium http://seleniumhq.org/, qui permet de créer des scénarios évolués avec simulations de mouvements divers comme si un utilisateur réel était en train de naviguer.
Je trouve cette solution tout a fait intéressante et enrichissante en terme de possibilités pour mes scripts, en revanche je sollicite votre expérience pour savoir si il existe un module qui aurait un moteur javascript embarqué ( ou qui peux en embarquer un ), et qui éviterait d'avoir un service qui "bind" un port ( 4444 par défaut ) sur un serveur.
En quelque sorte, un module qui fasse abstraction du javascript comme le fait le module Crypt::SSLeay avec le SSL. En gros, si le bot tombe sur une page avec du simple javascript à exécuter, et bien il l'exécute sans sourciller. Mais peux être suis-je en train de rêver
Merci d'avance, sputnick.
Message édité par sputnick le 24-01-2010 à 05:39:51