6
votes

Comment évaluer le code JavaScript à Python

J'ai besoin d'aller chercher un certain résultat sur une page Web, qui utilise du code JavaScript pour générer la pièce, je suis intéressant dans comme suit xxx

le résultat de eval () est précieux pour moi, j'écris un script Python, y a-t-il une bibliothèque que je peux utiliser pour exécuter pratiquement cette pièce de code JavaScript et obtenir la sortie?

Merci


0 commentaires

6 Réponses :


9
votes

PYV8 est un ensemble de fixations pour le moteur JavaScript V8 (Google Chrome)


1 commentaires

J'adore voir tant de choix, entre Spidermonkey et V8, c'est une question de préférence de Firefox ou de Chrome, merci!



1
votes

Cela semble être adapté à mon besoin: http://code.google.com/p/python-spidermonkey/ < / p>


1 commentaires

J'ai également trouvé un outil de ligne de commande très simple intégré sur Mac OS appelé JRunScript, cela fonctionne hors de la boîte.



4
votes

Vous pouvez utiliser PYQT avec le module WebKit :) Il dispose de JS Moteur et peut évaluer JS dans le contexte d'un document HTML (x).


2 commentaires

Lequel BTW utilise Squirrelfish (extrême) de Safari / WebKit sur des plates-formes prises en charge.


Oh, et vous pouvez également utiliser qscript, ce qui est plus efficace, car il n'a pas le DOM ou le rendu pour s'en soucier. (Utilise aussi l'écurie)



7
votes

Utilisez un Binding SpiderMonkey

from spidermonkey import Runtime
rt = Runtime()
cx = rt.new_context()
result = cx.eval_script(whatyoupostedabove)


4 commentaires

Ce projet semble être mort pendant longtemps et ne fonctionnera pas sur le léopard des neiges


J'utilise la version rubis sur Linux et c'est aussi des morts. Mais ça marche. Le plus gros problème sur Ruby n'est pas les liaisons eux-mêmes mais pour obtenir la bonne Spidermonkey (ne fonctionnait pas avec 1.9 par exemple).


On dirait qu'il y a une continuation chez github.com/davisp/python-spidermonkey mais il a aussi Pas été mis à jour en deux ans à ce stade.


Cette bibliothèque est obsolète maintenant.



3
votes

Je suppose que vous avez résolu le problème maintenant, mais je voulais partager une autre option (à mon avis une option beaucoup plus viable). Lorsque vous souhaitez évaluer une fonction jape-connénaire - JavaScript, il peut être plus facile d'implémenter cette fonction dans Python plutôt que de tirer dans un énorme outil construit pour analyser et exécuter tout JavaScript imaginable dans le monde.

Je suggère donc d'écrire une version Python de la fonction JavaScript Descacker et la plupart sont résolues. Je fais en fait cela et voici un exemple. La fonction int2base code> est la mise en œuvre de Alex Martelli qui peut être trouvée ici . P>

'var len=17;var pic=["/Files/Images/54/40769/imanhua_001_140429664.png","/Files/Images/54/40769/imanhua_002_140430070.png","/Files/Images/54/40769/imanhua_003_140430117.png","/Files/Images/54/40769/imanhua_004_140430179.png","/Files/Images/54/40769/imanhua_005_140430179.png","/Files/Images/54/40769/imanhua_006_140430226.png","/Files/Images/54/40769/imanhua_007_140430226.png","/Files/Images/54/40769/imanhua_008_140430242.png","/Files/Images/54/40769/imanhua_009_140430242.png","/Files/Images/54/40769/imanhua_010_140430289.png","/Files/Images/54/40769/imanhua_011_140430367.png","/Files/Images/54/40769/imanhua_012_140430367.png","/Files/Images/54/40769/imanhua_013_140430382.png","/Files/Images/54/40769/imanhua_014_140430382.png","/Files/Images/54/40769/imanhua_015_140430414.png","/Files/Images/54/40769/imanhua_016_140430414.png","/Files/Images/54/40769/imanhua_017_140430429.png"];var sid=40769;'


0 commentaires

0
votes

Lors de l'importation de module Javacript n'est pas option, j'utilise cette

var len=17;var pic=["/Files/Images/54/40769/imanhua_001_140429664.png","/Files/Images/54/40769/imanhua_002_140430070.png","/Files/Images/54/40769/imanhua_003_140430117.png","/Files/Images/54/40769/imanhua_004_140430179.png","/Files/Images/54/40769/imanhua_005_140430179.png","/Files/Images/54/40769/imanhua_006_140430226.png","/Files/Images/54/40769/imanhua_007_140430226.png","/Files/Images/54/40769/imanhua_008_140430242.png","/Files/Images/54/40769/imanhua_009_140430242.png","/Files/Images/54/40769/imanhua_010_140430289.png","/Files/Images/54/40769/imanhua_011_140430367.png","/Files/Images/54/40769/imanhua_012_140430367.png","/Files/Images/54/40769/imanhua_013_140430382.png","/Files/Images/54/40769/imanhua_014_140430382.png","/Files/Images/54/40769/imanhua_015_140430414.png","/Files/Images/54/40769/imanhua_016_140430414.png","/Files/Images/54/40769/imanhua_017_140430429.png"];var sid=40769;


0 commentaires