phantomjs - vypnutí čekání na načtení celé stránky
Ahoj, používám phantomjs na hromadné generování náhledů webů. Vše funguje, akorát se občas vyskytne web, kde se stránka stále načítá (např. chybí nějaká ikonka). Když na takovouhle stránku phantomjs narazí, tak na ní zůstane viset třeba 3 hodiny a až potom ten náhled udělá. Našel jsem si funkční návod jak udělat, aby se při vypršení času phantomjs ukončil (+ vypsal chybu proč, resp. na kterém elementu to selhalo), ale já bych potřeboval, aby se zastavilo načítání stránky a udělal se render alespoň části té stránky...
Ukázka:
ten první blok vyřeší to, že se phantomjs ukončí, pokud do 5 sekund neproběhne plné načtení stránky, ale já potřebuji, aby page.open nečekalo na načtení celé stránky, ale ignorovalo např nefunkční obrázky apod...
var page = require('webpage').create();
page.settings.resourceTimeout = 5000; // 5 seconds
page.onResourceTimeout = function(e) {
console.log(e.errorCode); // it'll probably be 408
console.log(e.errorString); // it'll probably be 'Network timeout on resource'
console.log(e.url); // the url whose request timed out
phantom.exit(1);
};
page.open(address, function (status) {
page.viewportSize = { width: width, height: height };
page.clipRect = {width: width, height: height };
window.setTimeout(function () {
console.log('Grabbing ' + address);
//page.render(fileName);
page.render(fileName);
phantom.exit();
}, pauseMS);
});
Díky