是否有用于呈现使用JavaScript的网页的命令行或库工具?

是否有用于呈现使用JavaScript的网页的命令行或库工具?,javascript,html,command-line,Javascript,Html,Command Line,对我来说,互联网上的页面抓取似乎有点像碰壁,因为越来越多的网站依赖JavaScript来呈现屏幕部分 在我看来,随着如此多的开源布局和JavaScript呈现器的发布(比如,和+),一定有人制作了一个工具来下载页面并呈现其JavaScript,而不必运行实际的浏览器。然而,我并没有在我的搜索中找到我想要的东西——我找到了像这样的工具,但它们依赖于运行的浏览器。我对任何可以执行以下一项(或两项)的工具或库感兴趣: 一种可以从命令行(*nix)运行的程序,给定页面的源代码,该程序返回由某个JS引擎呈

对我来说,互联网上的页面抓取似乎有点像碰壁,因为越来越多的网站依赖JavaScript来呈现屏幕部分

在我看来,随着如此多的开源布局和JavaScript呈现器的发布(比如,和+),一定有人制作了一个工具来下载页面并呈现其JavaScript,而不必运行实际的浏览器。然而,我并没有在我的搜索中找到我想要的东西——我找到了像这样的工具,但它们依赖于运行的浏览器。我对任何可以执行以下一项(或两项)的工具或库感兴趣:

  • 一种可以从命令行(*nix)运行的程序,给定页面的源代码,该程序返回由某个JS引擎呈现的页面源代码

  • 特定语言的集成支持,允许用户(轻松地)将页面的源代码传递给它,并返回由某个JS引擎呈现的页面源代码


  • 我认为#1在一般意义上更可取,但是#2在我想使用的语言中更有用。另外,我并不关心特定的JS引擎——任何相对现代的引擎都可以。还有什么?

    有一个Cobra Engine for Java(),它处理Javascript(它也有一个渲染器,但这是可选的)。我从来没用过它,但听说过关于它的好话。

    你可以看看。它的主要用途是自动进行web测试,但我认为它可以让您获得呈现的页面。

    我们以前使用Java进行一些自动测试。它似乎可以为您完成这项工作:)

    嗯,有一个工具被用作WebKit测试套件的一部分。我不确定它是否适合变成一个独立的工具,但它可以满足您的要求(呈现HTML,运行JavaScript,并将其呈现树转储到磁盘)。

    我认为有一个Qt示例代码,它使用附带的WebKit将页面呈现到pixmap。从这里到完整的CLI实用程序只是定义您的需求


    当然,对于大多数屏幕抓取需要你想要的是文本,而不是像素地图。。。如果这是您想要的,最好检查Rhino,让WebView呈现页面而不显示任何内容的代码很少,但它必须是GUI应用程序。它们还可以接受命令行参数,并隐藏窗口。直接使用WebKit可能在工具中实现


    除了Objective-C中复杂的DOM访问之外,WebKit还可以注入JavaScript,并与jQuery一起构成一个很好的抓取解决方案。不过,我不知道有哪个通用应用程序能做到这一点。

    由于JavaScript可以对网页的文档对象模型(DOM)进行大量操作,似乎要准确地刮取任意页面的内容,您不仅需要运行JavaScript引擎,您还需要完整而准确的页面DOM表示。这是只有在实例化了真正的浏览器引擎时才能得到的。可以使用嵌入式的、未显示的WebKit或Gecko引擎,然后在经过适当的加载延迟以允许脚本执行后,只需以HTML形式转储DOM内容。

    WebKit HTML到pdf的工作非常完美,甚至可以生成jpg


    这正是我想要的,如果我在帖子中没有正确解释,我很抱歉。我知道你需要一个DOM和JS引擎才能得到我想要的。如果您能更详细地解释最后一部分,我们将不胜感激。”(…)然后在适当的加载延迟后允许脚本执行(…)“这正是我无法解决的问题,所以我问了这个问题,您的意思是,我如何窃取您的javascript以及您的内容?别忘了css。如果不是你们这些爱管闲事的孩子,我也会侥幸逃脱的!是的,javascript是通过http隐藏的。这不是一个离开的请求或任何事情。