Como rolar para baixo com o Phantomjs para carregar o conteúdo dinâmico

Eu estou tentando raspar links de uma página que gera conteúdo dinamicamente como o usuário rolar para baixo para a parte inferior (rolagem infinita). Eu tentei fazer coisas diferentes com o Phantomjs, mas não consegui reunir links além da primeira página. Vamos dizer que o elemento na parte inferior que carrega o conteúdo tem classe.has-more-items. Está disponível até que o conteúdo final seja carregado durante a rolagem e fique indisponível no DOM (display: none). Aqui estão as coisas que eu tentei

Configurando viewportSize para uma grande altura logo apósvar page = require('webpage').create();

page.viewportSize = {width: 1600, height: 10000,};

Usandopage.scrollPosition = { top: 10000, left: 0 } dentropage.open mas não tem efeito
page.open('http://example.com/?q=houston', function(status) {
   if (status == "success") {
      page.scrollPosition = { top: 10000, left: 0 };  
   }
});
Também tentei colocá-lo dentropage.evaluate função, mas isso dá

Erro de referência: não é possível encontrar a página da variável

Tentei usar jQuery e código JS dentropage.evaluate epage.open mas sem

$ ("html, body"). animar ({scrollTop: $ (document) .height ()}, 10, function () {//console.log('check para execução ');});

como é e também dentrodocument.ready. Da mesma forma para o código JS

window.scrollBy(0,10000)

como é e também dentrowindow.onload

Estou realmente impressionado por dois dias e não consigo encontrar um caminho. Qualquer ajuda ou sugestão seria apreciada.

Atualizar

Eu encontrei um pedaço de código útil emhttps://groups.google.com/forum/?fromgroups=#!topic/phantomjs/8LrWRW8ZrA0

var hitRockBottom = false; while (!hitRockBottom) {
    // Scroll the page (not sure if this is the best way to do so...)
    page.scrollPosition = { top: page.scrollPosition + 1000, left: 0 };

    // Check if we've hit the bottom
    hitRockBottom = page.evaluate(function() {
        return document.querySelector(".has-more-items") === null;
    }); }

Onde.has-more-items é a classe de elemento que eu quero acessar, que está disponível inicialmente na parte inferior da página e, conforme rolamos para baixo, ela se move para baixo até que todos os dados sejam carregados e, em seguida, se tornem indisponíveis.

No entanto, quando eu testei, é claro que ele está correndo em loops infinitos sem rolar para baixo (eu renderizar fotos para verificar). Eu tentei substituirpage.scrollPosition = { top: page.scrollPosition + 1000, left: 0 }; com códigos de baixo também (um de cada vez)

window.document.body.scrollTop = '1000';
location.href = ".has-more-items";
page.scrollPosition = { top: page.scrollPosition + 1000, left: 0 };
document.location.href=".has-more-items";

Mas nada parece funcionar.

questionAnswers(4)

yourAnswerToTheQuestion