2012-04-12 9 views
3

Folgendes ist ein Ausschnitt aus einem PhantomJS-Skript. Es verfolgt dynamische Inhalte auf einer AJAXd-Webseite. Spur() einmal, aber aus irgendeinem Grund page.open() aufgerufen 3 malFunktion einmal aufgerufen, aber mehrmals ausgelöst

function track(url){ 
     console.log('Tracking',url); 
     var page = require('webpage').create(); 
     console.log('check2') 
     if(page){ 
      console.log('check4'); 
      page.open(url, function (status) { 
       console.log('check3'); 
       if (status !== 'success') { 
        console.log('Unable to load the address!'); 
        setTimeout(function(){start();},1000); 
        setTimeout(function(){page.release();},5000); 
       } 
       else { 
        console.log('check'); 
        var i = 0; 
        var last_winner = false; 
        var logged_once = false; 
        var interval = false; 
        if(!interval){ 
         interval = setInterval(function(){ 
          var scraping = scrape(page); 
          var date = new Date(); 
          var time = date.getTime(); 
          if(scraping){/*Bunch of console logs*/} 
          else{ 
           console.log('Bidding ended'); 
           clearInterval(interval); 
           setTimeout(function(){start();},1000); 
           setTimeout(function(){page.release();},5000); 
          } 
          scraping = false; 
         },1000); 
        }; 
       }; 
      }); 
     }; 
    }; 

protokolliert die folgende auf der Konsole aufgerufen wird:

Tracking http://www.google.com 
check2 
check4 
check3 
check 
check3 
check 
check3 
check 

Aus irgendeinem Grund, den ich nicht herausfinden können, , page.open() wird 3 Mal aufgerufen.

+0

Ich würde versuchen, herauszufinden, was die Seite Objekt wirklich ist: 'console.log (Seite);' – Corkscreewe

+0

try Wechsel console.log ('PRÜFUNG3Haben'); zu console.log (Status); und sieh, was du bekommst. Ich habe das Gefühl, es durchläuft open() ein paar Mal, während es http Statuscodes verarbeitet? –

Antwort

Verwandte Themen