var page = require('webpage').create(), loadInProgress = false, fs = require('fs');
var htmlFiles = new Array();
console.log(fs.workingDirectory);
var curdir = fs.list(fs.workingDirectory);
// loop through files and folders
for(var i = 0; i< curdir.length; i++)
{
var fullpath = fs.workingDirectory + fs.separator + curdir[i];
// check if item is a file
if(fs.isFile(fullpath))
{
// check that file is html
if(fullpath.indexOf('.html') != -1)
{
// show full path of file
console.log('File path: ' + fullpath);
htmlFiles.push(fullpath);
}
}
}
console.log('Number of Html Files: ' + htmlFiles.length);
// output pages as PNG
var pageindex = 0;
var interval = setInterval(function() {
if (!loadInProgress && pageindex < htmlFiles.length) {
console.log("image " + (pageindex + 1));
page.open(htmlFiles[pageindex]);
}
if (pageindex == htmlFiles.length) {
console.log("image render complete!");
phantom.exit();
}
}, 250);
page.onLoadStarted = function() {
loadInProgress = true;
console.log('page ' + (pageindex + 1) + ' load started');
};
page.onLoadFinished = function() {
loadInProgress = false;
page.render("images/output" + (pageindex + 1) + ".png");
console.log('page ' + (pageindex + 1) + ' load finished');
pageindex++;
}
희망이 helps. FileSystem 호출에 대한 자세한 내용은 다음 페이지를 확인하십시오. http://phantomjs.org/api/fs/
또한 FileSystem 함수는 PhantomJS 1.3 이상에서만 사용 가능하다고 생각합니다. latest 버전을 실행하십시오. 필자는 Windows 용 PyPhantomJS를 사용했지만, 다른 시스템에서도 문제없이 작동 할 것이라고 확신합니다.
아무 래도 나는 스크립트로 빈'PNG' 만 얻는다. 'page.onLoadFinished'에'console.log (page.content);를 추가하면'
'진짜 HTML 내용이 무엇이든 관계없이 ... 제안 사항이 있습니까? Phantomjs v1.9.2 – AvL스냅 샷을 만들기 전에 페이지가 완전히로드되고 있습니까? –
'status '도 확인했습니다. 내 질문보기 : http://stackoverflow.com/questions/19939046/phantomjs-fails-to-open-local-file – AvL