2016-01-24 53 views
2

我在X射線方面遇到了一些麻煩。我覺得這不是專門的X射線,而是JavaScript。試圖從X射線掃描中獲取信息

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射線獲取信息,然後使用它。我試圖將信息存儲到一個對象中,但是當我嘗試訪問它時,只給了我最後一個選項。 如果有人可以幫助我,我將不勝感激。 謝謝, Renan Cidale

回答

0

您可以嘗試幻影Javascript驅動程序的X射線。

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