从幻影模块访问原始“page.content”

我正在使用phantom模块与Node.js而不是phantomjs运行时。

如何访问page.content

下面的例子不起作用。

 var phantom = require('phantom') phantom.create(function (ph) { ph.createPage(function (page) { page.open('http://www.google.com', function (status) { console.log(status) // -> success console.log(page.content) // -> undefined console.log(page.getContent()) // -> undefined ph.exit() }) }) }) 

由于phantom模块(node.js和PhantomJS之间的桥梁)本质上是asynchronous的,所以这个API与普通的PhantomJS有些不同。 在项目页面上描述了不同之处,特别是在function细节中 :

属性不能被直接获取/设置,而是使用page.get('version', callback)page.set('viewportSize', {width:640,height:480})等。嵌套对象可以被访问包括按键中的点,如page.set('settings.loadImages', false)

在你的情况下,将是

 page.get("content", function(content){ console.log(content); }); 

这应该给你完整的DOM。 在这里看到我的post获取DOM的不同表示的不同方式。

 var phantom = require('phantom') phantom.create(function (ph) { ph.createPage(function (page) { page.open('http://www.google.com', function (status) { if (status !== 'success') { console.log('Unable to access the network!') } else { page.evaluate(function () { return document.body }, function (body) { console.log(body) ph.exit() }) } }) }) })