-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Durch die Nutzung von PhantomJS kann man solange auf den HTML-Content warten, bis ein bestimmter Flag gesetzt wird, z.B. bis alle SocketIO-Daten geladen, so stellt man sicher, dass jeder Crawler die asynchron geladenen Daten bekommt.
Beispielcode für PhantomJS:
var page = require('webpage').create();
page.open('http://localhost:3000/', function() {
var seconds = 0;
console.log("Waiting for render...");
setInterval(function() {
var rendered = page.evaluate(function() {
return document.rendered;
});
if(rendered) {
console.log("Rendered content:");
console.log(page.content);
phantom.exit();
} else {
seconds++;
console.log("Waiting for render since " + seconds + " seconds...");
}
}, 1000);
setTimeout(function() {
phantom.exit();
}, 30000);
});Man könnte z.B. child-process und den Stream des Prozesses nutzen, um dann den vorgerenderten Content der Website zu erhalten.