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++;
}
Umut bu helps. FileSystem çağrıları hakkında daha fazla bilgi için şu sayfayı ziyaret edin: http://phantomjs.org/api/fs/
Ayrıca, FileSystem işlevlerinin yalnızca PhantomJS 1.3 veya sonraki sürümlerinde kullanılabileceğine inanıyorum. Lütfen latest sürümünü çalıştırdığınızdan emin olun. Windows için PyPhantomJS kullandım ama eminim ki bu diğer sistemlerde de bir aksama olmadan çalışacaktır.
Her nasılsa, sadece komut dosyanızla boş PNG'ler alıyorum. ... 'in' page.onLoadFinished' '
' olursa olsun gerçek HTML içeriğinin istiyorum döndüren herhangi öneriniz; 'console.log (page.content) ekleme? Phantomjs v1.9.2 – AvLAnlık fotoğraf çekmeye başlamadan önce sayfalarınızın tam olarak yüklendiğinden emin misiniz? –
Ben de durum için kontrol ettim. Soruma bakın: http://stackoverflow.com/questions/19939046/phantomjs-fails-to-open-local-file – AvL