2010-11-09 14 views
-1

Donc, je donne la première page et les macros doivent visiter toutes les pages de ce site. (ouvre un nouvel onglet par exemple de chaque page)S'il vous plaît donnez-moi un exemple de macros IMacros pour visiter tout le site entièrement

Celui-ci je l'ai trouvé dans le net, mais cette macros visite seulement des liens dans une page de départ, et ne pas visiter le deuxième niveau en profondeur.

Merci pour votre aide!

//imacros-js:showsteps no 

//Testing forum post http://forum.iopus.com/viewtopic.php?f=11&t=7537&sid=2103c60e70f9c7051dcda5264874a488 
//Idea is to read something in common on the page and open each link in a new tab. 
var macro, retcode, url="", pos=1, stop=false; 
while(!stop) 
{ 
    macro="CODE:"; 
    macro+="TAB T=1\n"; 
    //macro+="TAG POS="+pos+" TYPE=A EXTRACT=HREF\n"; 
    macro+="TAG POS="+pos+" TYPE=A ATTR=HREF:* EXTRACT=HREF\n"; 
    //ATTR=CLASS:*topictitle* 
    retcode = iimPlay(macro); 

    if (retcode < 0)    // an error has occured 
    { 
     errtext = iimGetLastError(); 
     alert("1st Error "+retcode+": "+errtext); 
     stop=true; 
    } 

    //Stop if extract found nothing or counter is too high as a precaution 
    if((url = iimGetLastExtract()) == "#EANF#" || pos > 10000) 
    { 
     stop=true; 
     break; 
    } 
    else 
    { 
     macro="CODE:"; 
     macro+="SET !TIMEOUT 15\n"; 
     macro+="SET !ERRORIGNORE YES\n"; 
     macro+="TAB T=1\n"; 
     macro+="TAB NEW OPEN\n"; 
     macro+="TAB T="+new Number(pos+1)+"\n"; 
     macro+="URL GOTO="+url+"\n"; 
     macro+="TAB T=1\n"; 

     retcode = iimPlay(macro); 

     if (retcode < 0)    // an error has occured 
     { 
     errtext = iimGetLastError(); 
     alert("2nd Error "+retcode+": "+errtext); 
     stop=true; 
     } 
     pos++; 
    } 
} 

Répondre

0

Ce code trouve essentiellement les liens sur la page. Ensuite, il extrait le href et construit une nouvelle macro dans la variable macro. Il est ensuite exécuté avec la dernière commande retcode = iimPlay(macro)
Ce que vous voulez, c'est une fonction récursive, qui ouvre non seulement un nouvel onglet pour le href trouvé, mais exécute également la même fonction sur la page vers laquelle il pointe.
Donc, vous devriez faire le code ci-dessus dans une fonction qui accepte une URL en tant que paramètre. Et puis quand imacros trouve et lie, appelle la fonction avec les liens href.