2016-05-01 32 views
0

我想保存一個網站,我後來想在Nginx上使用它。在我的瀏覽器中保存與PhantomJS像ctrl + s的網站

我可以成功地page.render創建網站的圖像,它看起來不錯,但我不需要這樣的內容。

我試圖做fs.write( 「index.html的」,page.content, 'W')

即生成與圖像的差不多好了HTML文件,但它看起來真的了,我相信問題是,它取決於javascript,css和其他文件。 (並且它還提供了文件很多404)

如果我CTRL +小號使用網站,所有的文件上傳到Nginx的,它的工作原理正是我需要的方式。 但我需要它自動週期性發生的,所以我想用PhantomJS(或選擇,如果它是不可能在PhantomJS)

作爲一個方面說明,我想wget -m URL,它也不能工作。

這裏是PhantonJS腳本,對截圖作品:

function capture(sizes, callback) { 
    var page = require('webpage').create(); 
    page.viewportSize = {width: sizes[0], height: height}; 
    //page.zoomFactor = 1; 
    page.open(address, function (status) { 
    if (status !== 'success') { 
     console.log('Unable to load the address!'); 
    } else { 
     page.scrollPosition = { 
     top: 100, 
     left: 0 
     }; 
     window.setTimeout(function() { 
     console.log("Generating:" + sizes[0]); 
     var filename = output + "_" + sizes[0]; 
     page.render(filename + '.jpeg', {format: 'jpeg', quality: qual}); 
     page.close(); 
     callback.apply(); 
     }, 5000); 
    } 
    }); 
} 

回答

0

PhantomJS是不是真的最好的工具在這裏,因爲你反正需要修復路徑下載CSS,JS,圖像文件HTML(在保存頁面時Chrome會執行此操作)。

我的建議是wget的用法:

wget -E -H -k -K -p -nd -o log.txt http://example.com/page/ 

這將下載目標頁面,其中的資源文件,並將它們保存到當前目錄,重寫HTML,這樣它的正確鏈接到這些文件。

+0

它沒有工作。 問題是,該網站是由JavaScripts動態生成的。也似乎我不得不向下滾動以獲得額外的內容。 (在phantomJS中,我做了一個page.scrollposition,top = 100;並讓該站點計算5秒鐘) 還存在與.js腳本的衝突 –

+0

請擴展您的問題,展示最小工作量的PhantomJS代碼示例。 – Vaviloff

+0

我在主要問題上添加了代碼 –

相關問題