2016-11-21 7 views
0
var Nightmare = require('nightmare'); 
var nightmare = Nightmare({ show: true }); 
var fs = require('fs'); 
var result; 
nightmare 
     .goto('http://football-system.jp/fss/pub_penaltylist.php?lid=eBVesRz5C54=') 
     .wait('select[name="selectTeam"]') 
     .evaluate(function() { 
     var options = document.querySelectorAll('option'),i; 
     var values =[] 
     for (i = 1; i < options.length; ++i) { 
      values.push(options[i].value) 
      }  
      return values; 
     }) 
    .then(function (values) { 
    console.log(values) 
    values.reduce(function(accumulator, value) { 
    return accumulator.then(function(results) { 
    return nightmare.goto("http://football-system.jp/fss/pub_penaltylist.php?lid=eBVesRz5C54=") 
     .wait('select[name="selectTeam"]') 
     .select('select[name="selectTeam"]', value) 
     .wait('button[onClick="selectData();"]') 
     .click('button[onClick="selectData();"]') 
     .wait('table[class="tableOutputDate"]') 
     .evaluate(function() { 
      return document.querySelector('table[class="tableOutputDate"]').textContent; 
     }) 
     .then(function(result){ 
     console.log(result) 
     results.push(result); 
     return results; 
     }); 
    }); 
}, Promise.resolve([])).then(function(results){ 

console.log(results) 

}); 


    }) 
    .catch(function (error) { 
    console.error('Search failed:', error); 
    }); 

C'est mon code .Je veux looping tout sélectionner le sélecteur dans cette page et obtenir le tout html data.I a posé une question ici que la façon de boucle en cauchemar, mais ce résultat ne peux pas résoudre ce problème. s'il vous plaît, aidez-moi. Je vous remercie.cauchemar comment looply sélectionner le sélecteur

Répondre

1

Je résous ma question.le problème est survenu dans le temps de deal, pas dans la logique de boucle.J'ajoute plus d'attente (temps) .Je pense que l'attente (le temps) est meilleure que l'attente (le sélecteur) .so est plus de. merci de votre attention.

var run = function *() { 
    //var values = ['http://www.yahoo.com', 'http://example.com', 'http://w3c.org']; 
    var titles = []; 
    for (var i = 0; i < values.length; i++) { 
    var title = yield nightmare.goto('.............') 
     //.wait('select[name="selectTeam"]') 
     .wait(2000) 
     .select('select[name="selectTeam"]', values[i]) 
     .wait(2000) 
     .click('button[onClick="selectData();"]') 
     //.wait('table[class="tableOutputDate"]') 
     .wait(2000) 
     .evaluate(function() { 
      //return document.querySelector('table[class="tableOutputDate"]').textContent; 
      var divs = document.querySelectorAll('table[class="tableOutputDate"]'),i; 
     var tables = [] 
     for (i = 0; i < divs.length; ++i) { 
      tables.push(divs[i].textContent) 
      //result += divs[i].href.toString()+"\n"; 
      } 
     return tables; 
     }) 
    titles.push(title); 
    } 
    return titles; 
} 

vo(run)(function(err, titles) { 
    console.dir(titles); 
});