2012-08-17 86 views

回答

1

这是PhantomJS现在的一个大问题。开放(截至发稿时)票据位于http://code.google.com/p/phantomjs/issues/detail?id=158,至今还没有可靠的解决方案。这适用于收集您的请求数据以及响应数据,因此您无法收集您提交的发布数据,然后使用CasperJS下载(如方案)重新发送。

4

更新:关于“获取并对图像,CSS,字体等所有其他资源执行某些操作”的其他可能含义,我最近在博客how to do this in SlimerJS上发表了博文。我相信从1.9.1开始,在PhantomJS中执行此操作的唯一方法是应用修补程序并重新编译。


也许我误解你的“响应正文”的意思,也可能是被添加到PhantomJS最近超过了这个问题,但它是因为这很容易:

var page = require('webpage').create(); 
var url = 'http://google.com/'; 
page.open(url,function(){ 
    console.log(page.content); 
    phantom.exit(); 
    }); 

(顺便提一下,使用page.plainText得到它没有HTML标签)

如果你只是想在<body>标签内容,没有<head>的是可以用来获得响应的任何部分的另一种方式:

var page = require('webpage').create(); 
var url = 'http://google.com/'; 
page.open(url,function(){ 
    var html = page.evaluate(function(){ 
    return document.getElementsByTagName('body')[0].innerHTML; 
    }); 
    console.log(html); 
    phantom.exit(); 
    }); 
+0

我认为这是与获得访问ajax响应或JavaScript加载的图像等。这当然是什么把我带到这里。 – 2013-11-05 21:52:08

0

使用slimmerjs。你所有的'phantomjs'代码也将与'slimmerjs'一起工作。

更多信息here。注意最后的body属性,目前仅适用于slimmerjs。

注意:请将“身体”设置为page.captureContent = [/.*/]以显示在回复中。更多的信息关于这个:here