11

我一直在寻找方法来做到这一点,但还没有完全找到正确的方法来做到这一点。

任务:从 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 .../>

这只是一个例子,但希望你能明白我在说什么。

4

5 回答 5

7

看看犀牛引擎(维基百科上的犀牛)

这里有一些替代方案:


您可能还想看看Node.js

于 2009-06-05T18:54:48.917 回答
3

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

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

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

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

于 2009-06-05T18:35:09.567 回答
2

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

于 2009-06-05T18:51:03.997 回答
2

看看http://phantomjs.org/

它是一个无头网络浏览器,因此,您可以像在真正的浏览器中一样构建和操作 dom。显然你可以导出结果。

于 2012-06-17T18:04:32.113 回答
0

如果你喜欢 Python,你可以从 GitHub 获取ghost.py,它允许你创建一个无头的 WebKit 浏览器并在你的 Python 脚本中控制它。我已经通过 IPython Notebook 交互式地使用了它,它开箱即用。我将它扩展为与 BeautifulSoup 一起使用,这很好。

于 2012-10-11T01:53:52.820 回答