Casperjs raspando contenido dinámico

Estoy tratando de raspar estopágina usando Casperjs. La función principal de mi código funciona bien, pero el contenido se carga dinámicamente y no puedo entender cómo activarlo.

Esto es lo que estoy haciendo ahora:

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 });

El tiempo de espera expira, aunque lo aumenté a 20 segundos y el nuevo contenido nunca se carga. Intenté adaptar esta función a mi caso:

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);
}

Pero no pude entenderlo y ni siquiera estoy seguro de que sea relevante aquí. ¿Algunas ideas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta