Mein Ziel ist es, den dynamischen Web-Inhalt einer Website herunterzuladen, so dass Javascript auf dem empfangenen Inhalt ausgeführt werden muss. Der Code, den ich zur Zeit mit PhantomJS 2.1 verwenden, ist die folgende:Probleme beim Herunterladen von dynamischen Web-Inhalten mit PhantomJS
var page = require('webpage').create();
var fs = require('fs');
page.open('https://sports.bovada.lv/soccer/premier-league', function() {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(); // Edit: this line is removed
page.close();
});
});
page.onLoadFinished = function() {
console.log("Download finished");
fs.write('test.html', page.content, 'w');
phantom.exit(0);
};
Der Code die empfangenen Seite als „test.html“ spart, aber leider ist es nicht den vollen Seiteninhalt geladen, wie es mit einem tut Webbrowser. Ich würde mich freuen, wenn mir jemand helfen könnte.
Webseite zum Testen verwendet: https://sports.bovada.lv/soccer/premier-league
Diese Seite kann nicht erreicht werden sports.bovada.lv die Verbindung unerwartet geschlossen. ERR_CONNECTION_CLOSED – Vaviloff
Es kann vorkommen, dass die Site über Standortbeschränkungen verfügt. Wie auch immer Sie experimentieren mit einer anderen Website zum Beispiel http://www.foxsports.com/soccer/scores?competition=1 – shen
Warum verwenden Sie sowohl "page.onLoadFinished" und den Rückruf von 'page.open'. Sie brauchen nur einen von ihnen, weil sie gleichwertig sind, wenn Sie nur eine Seite öffnen. Was soll 'page.evaluate();' auch erreichen? Darüber hinaus kann das Laden einer alten Version von jQuery die Seite beschädigen. Versuchen Sie, sich auf die jQuery-Version zu verlassen, die mit der Seite geliefert wird. –