2012-08-17 45 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