次のWebサイトの表を抽出しようとしています
URL はページ 2 に変わりますが、一時停止に関係なく、同じテーブルがスクリーンショットまたは保存された .doc ファイルに表示されます。Web サイトでページ 2 をクリックすると、表が自動的に更新されます。どんな助けでも大歓迎です。
以下は私のコードです
var casper = require('casper').create();
var fs = require('fs');
casper.start('http://projects.wsj.com/jettracker/#a=HYA&d=BED&e=2011-01- 01&m=indv&o=EMC+CORP.&p=0&s=2007-01-01&sort=d&t=N125TM,N424TM,N448TM,N67TM,N866TM&v=table', function() {
this.capture("crap0" + ".png");
var firstRow = this.evaluate(function () {
var elements = __utils__.getElementsByXPath('//*[@id="table_results"]/table');
return [].map.call(elements, function(element) {
return element.innerText;
});
});
fs.write('pook.doc', firstRow, 'w');
});
casper.then(function() {
//Click on 1st result link
this.click({
type: 'xpath',
path: '//*[@id="results-pagination"]/div/a[3]'
});
// var url ='http://projects.wsj.com/jettracker/#a=HYA&d=BED&e=2011-01-01&m=indv&o=EMC+CORP.&p=1&s=2007-01-01&sort=d&t=N125TM,N424TM,N448TM,N67TM,N866TM&v=table'
//this.open(url);
this.waitFor(function check() {
return (this.getCurrentUrl() === 'http://projects.wsj.com/jettracker/#a=HYA&d=BED&e=2011-01-01&m=indv&o=EMC+CORP.&p=1&s=2007-01-01&sort=d&t=N125TM,N424TM,N448TM,N67TM,N866TM&v=table');
},
function then() { // step to execute when check() is ok
this.echo('Navigated to page 2', 'INFO');
},
function timeout() { // step to execute if check has failed
this.echo('Failed to navigate to page 2', 'ERROR');
});
this.capture("crap" + ".png");
this.wait(20000, function() {
this.echo("I've waited for 20 seconds.");
});
var firstRow2 = this.evaluate(function () {
var elements2 = __utils__.getElementsByXPath('//*[@id="table_results"]/table');
return [].map.call(elements2, function(element2) {
return element2.innerText;
});
});
fs.write('poop.doc', firstRow2, 'w');
});
casper.run();