1
最終的な目標は、提供されたブローカーWebサイトからテーブル形式の在庫データを取得し、それを何らかのテキストファイルに保存することです。casperjsを使用して、提供されたWebサイトからテーブルを削り取るにはどうすればよいですか?
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();
このコードでは、株価テーブルを取得して各セルを印刷する必要があります。しかし、私が得ることはすべて「未定義」です。これは、queryselector呼び出しによって返されたオブジェクトがないことを意味します。そして、私はどのWebプログラミング(HTML、CSS)も知らないと仮定してください。
私は2つの問題を抱えている:誰でものChildNodesが良く、私の溶液中で、私は本当に興味があるということで処理され、より抽象的なソリューションを得た場合は、このページに出る
ノードは、ビット配線されている。まず、 1つの簡単なテーブルを印刷するには約80秒かかります。これは時間がかかり、最後のステップでほとんどの時間が費やされます(同じデータをクロムでレンダリングするには数秒以下の時間がかかります)。次に、スクリプトを修正し、複数のページを一度に複数のページで実行するバッチを実行すると、RAMが不足しているため(2GBの空き容量があるため)、「メモリが枯渇しました」というエラーが表示されます。 –