2016-07-20 23 views
2

Ich versuche, einige Daten für den persönlichen Gebrauch zu kratzen. Hier ist mein Code ist für CasperJS:Wie scrape Daten aus der Tabelle mit CasperJS und PhantomJS

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: 'debug', //debug, info, warning, error 
    pageSettings: { 
     loadImages: false, 
     loadPlugins: false, 
     userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4' 
    }, 
    clientScripts: ["vendor/jquery-3.1.0.js", "vendor/lodash.js"] 
    }); 

var fs = require('fs'); 
var url = 'http://24score.com/football/england/premier_league/2015-2016/regular_season/averages/'; 

var content = []; 

function getContent() { 
    var content = $(x('//*[@id="total2.5"]/table/tbody[1]/tr[1]/td[1]')); 
    return _.map(content, function(e) { 
     return e.innerHTML; 
    }) 
} 

casper.start(url, function() { 

}); 

casper.then(function() { 
    content = this.evaluate(getContent); 
}); 

casper.run(function() { 
    this.echo(content).exit(); 
}); 

Es scheint, dass ich ein Problem mit HTML-Elemente Identifizierung habe, verwende ich hier XPath, und nichts arbeiten. Aber wenn ich ein anderes Element auswähle, gibt es etwas Output.

Antwort

2

Korrigiert:

__utils__.getElementsByXPath('//*[@id="total2.5"]/table/tbody[1]/tr[1]/td[1]')