Интерпретировать и выполнить произвольный Javascript в CLI Linux - PullRequest
11 голосов
/ 05 июня 2009

Я некоторое время искал способы сделать это, но не смог найти правильный способ сделать это.

Задача: Выполнить Javascript из командной строки Linux.

Например, имеет двоичный файл или что-то еще, что будет интерпретировать Javascript, загрузить некоторые файлы .js, а затем вывести значение некоторой переменной.

Более конкретный пример: Я бы хотел получить окончательную версию этой страницы после того, как Javascript был интерпретирован и выполнен http://www.vureel.com/video/2809/American-Dad. Если вы посмотрите на страницу с Firebug, вы увидите, что этот неясный 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>

превратился в красивый код для вставки

<embed height="390" width="642" flashvars="file=http://vureel-cdn-2.vureel.com/leechingisillegal/537c69afbcaf4c7cf416f30077bbe9d1/4a29621d/here/2809.flv ...etc .../>

Это всего лишь пример, но, надеюсь, вы видите, к чему я клоню.

Ответы [ 5 ]

7 голосов
/ 05 июня 2009

Взгляните на Rhino движок ( Rhino в Википедии )

Вот несколько альтернатив:


Вы также можете взглянуть на Node.js

3 голосов
/ 05 июня 2009

Ваш вид вождения в двух разных точках 1) выполнение javascript вне браузера 2) просмотр результатов javascript на веб-странице.

Для первой проблемы, Mozilla Rhino - это интерпретатор javascript, который работает на Java. Вы можете выполнить JavaScript через командную строку.

Что касается второй проблемы, посмотрите на вкладку dom в Firebug, вы можете увидеть итоговые элементы документа после запуска javascript.

Или вы можете включить отладку скриптов, сохранить локальную копию страницы и вставить в нее отладку (); заявление.

2 голосов
/ 17 июня 2012

Взгляните на http://phantomjs.org/

Это безголовый веб-браузер, поэтому вы можете создать dom и манипулировать им, как если бы вы работали в реальном браузере. Очевидно, вы можете экспортировать результат.

2 голосов
/ 05 июня 2009

Я думаю, что вы хотите сделать некоторую очистку при выполнении javascript. env.js, описанный в http://ejohn.org/blog/bringing-the-browser-to-the-server/, может быть полезным. Я должен был попробовать его на каком-то своем инструменте, но не смог из-за нехватки времени и решил использовать сценарии для конкретного сайта.

0 голосов
/ 11 октября 2012

Если вам нравится Python, вы можете получить ghost.py из GitHub, который позволяет вам создать автономный браузер WebKit и управлять им из скрипта Python. Я использовал это в интерактивном режиме с помощью IPython Notebook, и оно работало довольно хорошо. Я расширил его для работы с BeautifulSoup, и это было приятно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...