2016-07-10 5 views
0

Ich habe Code, der eine Website für bestimmte Daten scraping, obwohl ich es auf viele Websites erweitern möchte (obwohl den gleichen Code beibehalten). Könnte ich einfach eine while-Schleife mit einem Array der Links verwenden (ich nehme die gleiche Syntax wie JS an)? Wenn nicht, wie sonst könnte ich das tun?Während Schleife mit PhantomJS?

var webPage = require('webpage'); 
 
var page = webPage.create(); 
 

 
page.open('http://shop.advanceautoparts.com/p/purolator-classic-air-filter-a24278/5792304-P?navigationPath=L1*14934&zoneAssigned=1&prefStoredSet=1&prefZC=07047', function(status) {    
 
    page.sendEvent('mousemove', 1, 1); 
 
    page.sendEvent('click'); 
 
    page.sendEvent('click'); 
 
    setTimeout(function(){ 
 
     var fetchData = page.evaluate(function(){ 
 
      return document.getElementById("add2Cart_1").className; 
 
     }); 
 
     sort(fetchData); 
 
     page.close(); 
 
    }, 3000); 
 
}); 
 

 
function sort(string) { 
 
    if (string == "button yellow add2Cart disabled") { 
 
     console.log("Out of Stock"); 
 
    } else { 
 
     console.log("In Stock"); 
 
    } 
 
}`

Antwort

0

konnte ich eine while-Schleife mit einer Reihe der Verbindungsglieder verwenden nur (I gleiche Syntax wie JS gehe davon aus)?

Ja. Es ist nur JavaScript. Sei dir bewusst, dass du sie alle parallel ausführst, wenn du nicht blockst, bis jede Seite fertig ist.

+0

Wenn ich versuche, eine einfache while-Schleife zu implementieren, erkennt es die setTimeout, irgendwelche Vorschläge nicht? – traw1234

+0

Ich weiß nicht, was Sie meinen, "erkennt das SetTimeout nicht". – Brad

+0

Anstatt 3 Sekunden zu warten (von meiner setTimeout-Funktion), überspringt es den gesamten Code und rendert die Seite überhaupt nicht für irgendeine Verbindung. – traw1234