Casperjs выскабливает динамический контент
Я пытаюсь это почиститьстраница используя Casperjs. Основная функция моего кода работает просто отлично, но контент загружается динамически, и я не могу понять, как это вызвать.
Вот чем я сейчас занимаюсь:
casper.waitFor(function() {
this.scrollToBottom();
var count = this.evaluate(function() {
var match = document.querySelectorAll('.loading-msg');
return match.length;
});
if (count <= 1) {
return true;
}
else {
return false
};
}, function() { // do stuff });
Время ожидания просто истекает, хотя я увеличил его до 20 секунд, и новый контент никогда не загружается. Я попытался адаптировать эту функцию для моего случая:
function tryAndScroll(casper) {
casper.waitFor(function() {
this.page.scrollPosition = { top: this.page.scrollPosition["top"] + 4000, left: 0 };
return true;
}, function() {
var info = this.getElementInfo('p[loading-spinner="!loading"]');
if (info["visible"] == true) {
this.waitWhileVisible('p[loading-spinner="!loading"]', function () {
this.emit('results.loaded');
}, function () {
this.echo('next results not loaded');
}, 5000);
}
}, function() {
this.echo("Scrolling failed. Sorry.").exit();
}, 500);
}
Но я не мог понять это, и я даже не уверен, что это уместно здесь. Есть идеи?