1

J'essaie d'interagir avec un site Web HTML 4.0 qui utilise javascript fortement obscurci pour cacher les éléments HTML réguliers. Ce que je veux faire est de remplir un formulaire et lire les résultats retournés, et cela s'avère plus difficile à faire que prévu. Quand j'ai lu la page en utilisant Firebug, cela m'a donné le code source désobscuqué, et je peux ensuite l'utiliser pour faire ce que je veux accomplir. La sortie Firebug a montré tous les éléments réguliers d'un site Web, tels que -tags et autres, qui étaient cachés dans la source originale.Analyser et interagir avec javascript obfuscated

J'ai écrit le reste de mon application en Python, en utilisant mechanize pour interagir avec d'autres services web, donc je préfère utiliser un module Python existant pour le faire si c'est possible. Le problème n'est pas seulement de savoir comment lire le code source d'une façon que les mécaniciens peuvent comprendre, mais aussi comment générer la réponse que le serveur web peut interpréter. Pourrais-je utiliser des contrôles mécaniques réguliers même si le code html est obscurci? Au début de mon projet, j'ai utilisé pywebkitgtk au lieu de mécaniser, mais je l'ai abandonné parce qu'il n'était pas vraiment bien implémenté en python. La plupart des fonctions sont manquantes. Serait-ce une méthode raisonnable peut-être, pour démarrer un webkit-navigateur dont j'ai lu le HTML, et l'utiliser avec mécaniser?

Toute aide serait grandement appréciée, je suis vraiment dans une impasse ici. Merci!

Édition: J'ai essayé de décharger le code HTML extrait de mechanize et de l'ouvrir avec pywebkitgtk, en utilisant load_html_string, puis en évaluant le code HTML de cette façon. Malheureusement, étant donné que le document que j'essaie d'analyser charge plus de ressources de façon dynamique, ces scripts arrêtent simplement d'attendre le chargement des ressources. Notez que je ne peux pas utiliser webkit pour charger le document lui-même puisque j'utilise la fonction CookieJar de mechanize pour me permettre de me connecter d'abord.

J'ai également essayé de faire tomber le HTML de webkit, qui pour une raison quelconque a jeté le javascript obfuscated seulement, tout en affichant le site Web parfaitement bien. Si webkit pouvait vider le javascript deobfuscated comme le fait Firebug, je pourrais travailler avec cela et former une requête selon le code propre.

Répondre

1

Plutôt que d'essayer de traiter la page, pourquoi ne pas utiliser Firebug pour trouver les noms? des champs de formulaire, puis utilisez httplib ou autre pour envoyer une demande avec les champs et les paramètres nécessaires?

S'il est envoyé avec ajax, vous devriez également pouvoir déterminer les valeurs envoyées au serveur dans Firebug.

+0

+1 pour le rendre plus facile. Sur un de mes projets actuels, j'ai trouvé que l'incrémentation d'un champ URL pour des demandes HTTP très similaires à l'aide d'urllib était beaucoup plus simple que d'explorer littéralement des pages avec mechanize. –

+0

@Jani: Je pense que je vais essayer ça. C'est ennuyeux parce que je regarde le code Actionscript qui fait exactement ce que je veux faire, mais je ne peux pas utiliser la plate-forme Adobe Air pour mon projet. Je vais aller droit au but. Je vous remercie! – cmbrnt

+0

Après y avoir réfléchi un peu, j'ai réalisé un problème: les résultats que j'ai besoin d'analyser seront également renvoyés dans un code javascript obfusqué, ce qui malheureusement rend cette solution impossible, comme je le vois. – cmbrnt

Questions connexes