Интерпретировать и выполнить произвольный Javascript в CLI Linux

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

Задача: Выполнить 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 .../>

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

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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