我一直在寻找方法做一段时间,但却找不到合适的方法。
任务:从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 .../>
这只是一个例子,但希望你能看到我正在开车的地方。
答案 0 :(得分:7)
答案 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)
这是一个无头的网络浏览器,所以,你可以像在真实的浏览器中那样构建dom并操纵它。显然你可以导出结果。
答案 4 :(得分:0)
如果你喜欢Python,你可以从GitHub中获取ghost.py,它允许你创建一个无头的WebKit浏览器并从你的Python脚本中控制它。我通过IPython笔记本交互式地使用了它,它在盒子外面运行良好。我把它扩展到与BeautifulSoup合作,这很不错。