So scrollen Sie mit Phantomjs nach unten, um dynamischen Inhalt zu laden

Ich versuche, Links von einer Seite zu entfernen, die Inhalte dynamisch generiert, während der Benutzer nach unten scrollt (unendliches Scrollen). Ich habe versucht, verschiedene Dinge mit Phantomjs zu tun, konnte aber keine Links über die erste Seite hinaus sammeln. Angenommen, das Element am unteren Rand, das den Inhalt lädt, hat eine Klasse.has-more-items. Es ist verfügbar, bis der endgültige Inhalt während des Bildlaufs geladen wird und dann in DOM nicht mehr verfügbar ist (Anzeige: Keine). Hier sind die Dinge, die ich versucht habe-

Setzen Sie viewportSize gleich danach auf eine große Höhevar page = require('webpage').create();

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

Verwendenpage.scrollPosition = { top: 10000, left: 0 } Innerhalbpage.open aber haben keine Wirkung wie-
page.open('http://example.com/?q=houston', function(status) {
   if (status == "success") {
      page.scrollPosition = { top: 10000, left: 0 };  
   }
});
Ich habe auch versucht, es hineinzulegenpage.evaluate funktion aber das gibt

Referenzfehler: Variablenseite kann nicht gefunden werden

Versucht mit jQuery und JS-Code im Innerenpage.evaluate undpage.open aber ohne Erfolg

$ ("html, body"). animate ({scrollTop: $ (document) .height ()}, 10, function () {//console.log('check for execution ');});

wie es ist und auch drinnendocument.ready. Ähnliches gilt für JS

window.scrollBy(0,10000)

wie es ist und auch drinnenwindow.onload

Ich bin jetzt seit 2 Tagen wirklich begeistert und nicht in der Lage, einen Weg zu finden. Jede Hilfe oder Hinweis wäre dankbar.

Aktualisieren

Ich habe einen hilfreichen Code unter gefundenhttps://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;
    }); }

Woher.has-more-items ist die Elementklasse, auf die ich zugreifen möchte. Sie befindet sich anfangs unten auf der Seite. Wenn wir nach unten scrollen, bewegt sie sich weiter nach unten, bis alle Daten geladen sind und dann nicht mehr verfügbar sind.

Beim Testen ist jedoch klar, dass es in Endlosschleifen läuft, ohne nach unten zu scrollen (ich rendere zu überprüfende Bilder). Ich habe versucht zu ersetzenpage.scrollPosition = { top: page.scrollPosition + 1000, left: 0 }; auch mit Codes von unten (einzeln)

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

Aber nichts scheint zu funktionieren.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage