如何使用CasperJS和PhantomJS从表中获取数据

时间:2016-07-20 13:41:12

标签: xpath web-scraping phantomjs casperjs

我正在尝试将一些数据用于个人用途。这是我的CasperJS代码:

    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();
});

看来,我有HTML元素识别问题,我在这里使用XPath,没有任何效果。但是当我选择其他元素时,它会给我一些输出。

1 个答案:

答案 0 :(得分:2)

修正:

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