2

我在使用 X 射线时遇到了一些问题。我觉得这不是专门的 X 射线,而是 javascript。

var Xray = require('x-ray');
var xray = Xray();


var brasil = [];

function stringToNumber(str){
    var number;
    for(var i=0;i<str.length-1;i++){
        if(number == undefined && Number(str[i]) < 10){
            number = str[i];
        } else if (number != undefined && Number(str[i]) < 10) {
            number = number + str[i];
        } else {
            break;
        }
    }
    return Number(number);
}
xray('http://www.footballzz.com/equipa.php?id=87&epoca_id=143', {
        a: xray('tr', [{
                name: '.text',
                percentage: 'td:nth-child(2)'
        }])
    })(function(err, obj){

        for(var i =0;i<obj.a.length-1;i++){
            if(obj.a[i].name == "Brazil"){
                obj.a[i].percentage = stringToNumber(obj.a[i].percentage);
                brasil.push(obj.a[i]);
            }
        }

        console.log(brasil);
})

所以基本上我想做的是从 X 射线中获取信息,然后使用它。我正在尝试将信息存储到一个对象中,但是当我尝试访问它时,它只给了我最后一个选项。如果有人可以帮助我,我将不胜感激。谢谢你,雷南·西代尔

4

1 回答 1

0

您可以尝试用于 X 射线的 phantom Javascript 驱动程序。

var Xray = require('x-ray');
var phantom = require('x-ray-phantom');

var xray = Xray().driver(phantom());

function stringToNumber(str){
    var number;
    for(var i=0;i<str.length-1;i++){
        if(number == undefined && Number(str[i]) < 10){
            number = str[i];
        } else if (number != undefined && Number(str[i]) < 10) {
            number = number + str[i];
        } else {
        break;
        }
    }
    return Number(number);
}

xray('http://www.footballzz.com/equipa.php?id=87&epoca_id=143', 
    'tr > td:first-child > table.zztable.stats > tbody > tr', [{
    name: '.text',
    percentage: 'td:nth-child(2)'
}])(function(err, obj){
    for(var i =0;i<obj.length-1;i++){
        if(obj[i].name == "Brazil"){
            obj[i].percentage = stringToNumber(obj[i].percentage);
            brasil.push(obj[i]);
        }
    }

    console.log(brasil);
})
于 2016-02-01T08:33:53.763 回答