Das endgültige Ziel besteht darin, Bestandsdaten in Tabellenform von der bereitgestellten Broker-Website abzurufen und in einer Textdatei zu speichern. Hier ist der Code, dass ich durch das Lesen paar Tutorials bisher kompilieren verwaltet:Wie scrape Tabelle von der bereitgestellten Website mit Casperjs?
var casper = require("casper").create();
var url = 'https://iqoption.com/en/historical-financial-quotes?active_id=1&tz_offset=60&date=2016-12-19-21-59';
var terminate = function() {
this.echo("Exiting ...").exit();
};
var processPage = function() {
var rows = document.querySelectorAll('#mCSB_3_container > table'); //get table from broker site (copy/paste via copy selector in chrome tools)
//var nodes = document.getElementsByClassName('mCSB_container');
this.echo(rows);
this.echo(rows.length);
for (var i = 0; i < rows.length; i++)
{
var cell = rows[i].querySelector('.quotes-table-result__date');
this.echo(cell); //print each cell
}
};
casper.start(url);
casper.waitForSelector('#mCSB_3_container', processPage, terminate);
casper.run();
Dieser Code sollte den Aktienkurs Tabelle abrufen und jede Zelle ausdrucken. Alles, was ich bekomme, ist jedoch 'undefiniert', was bedeutet, dass ich wahrscheinlich keine Objekte durch einen Query-Selector-Aufruf zurückgegeben habe. Und bitte gehen Sie davon aus, dass ich keine Webprogrammierung (HTML, CSS) kenne.
ich zwei Probleme: Erstens Um eine einfache Tabelle auszudrucken, dauert es etwa 80 Sekunden, was viel zu lang ist und die meiste Zeit im letzten Schritt verbracht wird (weniger als ein paar Sekunden sind nötig, um die gleichen Daten in Chrome zu erhalten). Und zweitens, wenn ich das Skript ändere und es für mehrere Seiten benutze, um mehrere Tabellen gleichzeitig zu erhalten, bekomme ich den "Speicher erschöpft" -Fehler, da ich keinen RAM mehr hatte (es sind 2GB frei). –