在Linux CLI中解释并执行任意Javascript

时间:2009-06-05 18:30:07

标签: javascript linux command-line-interface

我一直在寻找方法做一段时间,但却找不到合适的方法。

任务:从Linux命令行执行Javascript。

例如,有二进制文件或其他任何解释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 个答案:

答案 0 :(得分:7)

查看Rhino引擎(Rhino on wikipedia

以下是另一种选择:


您可能还想查看Node.js

答案 1 :(得分:3)

您在两个不同点开车1)在浏览器外执行javascript 2)在网页上查看javascript结果。

对于第一个问题,mozilla rhino是一个在java中运行的javascript解释器。您可以通过命令行执行javascript。

对于第二个问题,请查看Firebug中的dom选项卡,您可以在javascript运行后看到生成的文档元素。

或者您可以启用脚本调试,保存页面的本地副本并将其插入debug();言。

答案 2 :(得分:2)

我认为你想在执行javascript时进行一些抓取。 http://ejohn.org/blog/bringing-the-browser-to-the-server/中描述的env.js可能会有所帮助。我打算在我的某些工具上尝试它,但不能因为时间不足而无法使用特定于站点的脚本。

答案 3 :(得分:2)

查看http://phantomjs.org/

这是一个无头的网络浏览器,所以,你可以像在真实的浏览器中那样构建dom并操纵它。显然你可以导出结果。

答案 4 :(得分:0)

如果你喜欢Python,你可以从GitHub中获取ghost.py,它允许你创建一个无头的WebKit浏览器并从你的Python脚本中控制它。我通过IPython笔记本交互式地使用了它,它在盒子外面运行良好。我把它扩展到与BeautifulSoup合作,这很不错。