带有js支持的命令行浏览器


39

有人知道有js支持的命令行浏览器吗?

理想情况下,我需要以下能力:

some-browser http://example.com > ~/page.html

这意味着cli浏览器下载html,执行js并输出页面。


1
我还没有真正玩过它,但也许uzbl(uzbl.org)可以做到。
LawrenceC

Answers:


36

我不知道具有js支持的交互式浏览器,但您应该看看PhantomJS,它定义为:

PhantomJS是带有JavaScript API的无头WebKit。它具有对各种Web标准的快速本机支持:DOM处理,CSS选择器,JSON,Canvas和SVG。

在呈现页面后获取页面内容:

$ phantomjs save_page.js http://example.com > ~/page.html

使用save_page.js:

var system = require('system');
var page = require('webpage').create();

page.open(system.args[1], function()
{
    console.log(page.content);
    phantom.exit();
});

一个有趣的项目是phantomjs节点集成了PhantomJS用的NodeJS用作一个模块的NodeJS,使前者。


发现。正是我想要的。最后,我不需要问我的问题
Sevenearths,2015年

2
我只是在自己创建的页面上尝试过此操作。它会在运行javascript之前转储页面。有什么建议么?
abalter

@abalter:显然这意味着您的页面中存在语法错误。
朱莉·佩勒捷


4

如果您运行的是Linux,则可以通过watir-webdriver使用Ruby(以及可能的其他语言绑定)远程控制Firefox ,然后在运行后可以欺骗它,使其不显示任何内容(但仍显示在页面上,上传下载或使用Xvfb抓取数据),



2

如果网页的PNG足够而您不需要HTML源,则应该可以使用webkit-imageUbuntu附带的一个小型命令行实用程序。但是,它并不是功能丰富的应用程序,因此它没有提供太多自定义功能,但是它可能是进行进一步黑客攻击的良好起点,因此甚至可以相对轻松地获取处理后的HTML输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.