D'interpréter et d'exécuter Javascript arbitraire dans la ligne de commande Linux
J'ai été à la recherche de façons de le faire pendant un certain temps mais je n'ai pas tout à fait été capable de trouver la bonne façon de le faire.
La tâche: Exécuter le code Javascript à partir d'un Linux en ligne de commande.
Par exemple, ont binaire ou tout ce qui se passe à interpréter Javascript charge de certains .js fichiers, puis imprimez une valeur d'une variable.
Exemple plus concret: je voudrais obtenir la version finale de cette page, après le Javascript a été interprétées et exécutées http://www.vureel.com/video/2809/American-Dad. Si vous regardez à la page avec Firebug, vous verrez que cet obscur Javascript
<script language="JavaScript" type="text/javascript">/*<![CDATA[*/var a,s,n;function a8bcb4f34dfd6e81cfdb9c115d1671582(s){r="";for(i=0;i<s.length;i++){n=s.charCodeAt(i);if(n<128){n=n ... etc ...</script>
transformé en un joli code embed
<embed height="390" width="642" flashvars="file=http://vureel-cdn-2.vureel.com/leechingisillegal/537c69afbcaf4c7cf416f30077bbe9d1/4a29621d/here/2809.flv ...etc .../>
C'est juste un exemple, mais j'espère que vous voyez ce que je suis au volant.
OriginalL'auteur Artem Russakovskii | 2009-06-05
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la Rhino moteur (Rhino sur wikipédia)
Voici quelques alternatives:
Vous pouvez également prendre un coup d'oeil à Node.js
OriginalL'auteur Boris Guéry
Votre tri de la conduite à deux points différents de 1) l'exécution de javascript en dehors du navigateur 2) l'affichage des résultats de javascript sur une page web.
Pour le premier problème, mozilla rhino est un interpréteur javascript qui s'exécute en java. Vous pouvez exécuter le code javascript via une ligne de commande.
Pour le deuxième problème, regardez l'onglet dom dans Firebug, vous pouvez voir le document résultant des éléments après le javascript est exécuté.
Ou vous pouvez activer le débogage de script, enregistrer une copie locale de la page et insérer un debug(); déclaration.
Je suis à la recherche dans Spidermonkey pour le moment il y a une lib Perl qui peut parler à elle. Rhino pour autant que je comprends, c'est à peu près la même chose, mais pour Java plutôt que de C.
Pour le 2ème problème, votre solution est tout aussi bonne qu'en regardant de Firebug sortie, mais j'ai besoin d'être en mesure d'obtenir sur la ligne de commande, donc à l'aide d'un navigateur n'est pas une option.
J'ai maintenant réussi à exécuter ce morceau de code Javascript dans mon exemple à l'aide de Spidermonkey. La recherche de plus pour voir comment on peut nourrir tout le site ou une liste de fichiers js.
OriginalL'auteur Tim Hoolihan
Je pense que vous voulez faire un peu de grattage lors de l'exécution de javascript. env.js décrit dans http://ejohn.org/blog/bringing-the-browser-to-the-server/ pourrait être utile. Je devais de l'essayer sur un autre outil de mine, mais ne pouvait pas pour le manque de temps et s'installe avec le site de scripts spécifiques.
Si vous y allez avec env.js, il y a eu beaucoup de travail depuis la version dans le blog afin de le faire correspondre les navigateurs mieux. Le code est dans le github.com/jeresig/env-js/tree/master. Il y a également plusieurs branches avec des fonctionnalités supplémentaires.
OriginalL'auteur artificialidiot
Prendre un coup d'oeil à http://phantomjs.org/
C'est une tête navigateur web, vous aurez à construire le dom et le manipuler comme vous le feriez dans un vrai navigateur. Évidemment, vous pouvez exporter le résultat.
OriginalL'auteur goat
Si vous aimez Python, vous pouvez saisir ghost.py à partir de GitHub, ce qui vous permet de créer une tête, navigateur WebKit et de le contrôler à partir de votre script Python. J'ai utilisé ce de manière interactive par le biais de la IPython Notebook et cela a fonctionné assez bien sorti de la boîte. J'ai étendu pour qu'il fonctionne avec BeautifulSoup, et c'était agréable.
OriginalL'auteur Carl Smith