2014-06-14 3 views
1

입니다. 작업은 프록시를 변경하고 사이트 (예 : youtube.com)를 열고 로고가 있는지 확인하십시오. 로고가 없다면 다시 한번 (프록시 변경 및 youtube.com 열기)하십시오. 로고가 있으면 검색 양식에 단어를 붙여 넣으십시오. 그러나 문제는 "do"에서 "while"까지의 코드 섹션이 올바르게 작동하지 않는다는 것입니다. 이 URL을 열고 바로 무한 루프에 간다 ...iMacros 자바 스크립트 루프 조건이

UPD1

을 내 코드에서 일부 변경을하고 그것을 작동하지만 문제는 "매크로"다음에 프록시를 재설정한다는 것입니다하지 않습니다 코드가 완료되었습니다. "매크로 1"코드가 처리중인 경우 프록시 주소가 설정되지 않습니다.

는 UPD2 내가 "을 Macro1"하지만 "N2"다시 한번 "N2"변수, 저장, "N"그것의 가치와 설정 프록시를 추가하려고

항상 "1"값을합니다. "do while"코드의 값을 저장하는 방법을 모릅니다.

var macro; 
macro = "CODE:"; 
//var extracted = iimGetLastExtract(); 
macro += "SET !ERRORIGNORE YES" + "\n"; 
macro += "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
macro += "SET !DATASOURCE c:\\proxy.txt" + "\n"; 
macro += "SET !DATASOURCE_COLUMNS 1" + "\n"; 
macro += "SET !LOOP 1" + "\n"; 
macro += "SET !DATASOURCE_LINE {{n}}" + "\n"; 
macro += "CLEAR" + "\n"; 
macro += "PROXY ADDRESS={{!COL1}}" + "\n"; 
macro += "URL GOTO=https://www.youtube.com/" + "\n"; 
macro += "TAG POS=1 TYPE=IMG ATTR=ID:logo EXTRACT=HREF" + "\n"; 

var macro1; 
macro1 = "CODE:"; 
macro1 += "SET !ERRORIGNORE YES" + "\n"; 
macro1 += "CMDLINE !DATASOURCE c:\\address.txt" + "\n"; 
macro1 += "SET !DATASOURCE_COLUMNS 1" + "\n"; 
macro1 += "SET !LOOP 1" + "\n"; 
macro1 += "SET !DATASOURCE_LINE {{i}}" + "\n"; 
macro1 += "SET !ERRORIGNORE YES" + "\n"; 
macro1 += "SET !ERRORCONTINUE YES" + "\n"; 
macro1 += "TAB T=1" + "\n"; 
macro1 += "TAG POS=1 TYPE=TD ATTR=ID:gs_tti50 CONTENT={{!COL1}}" + "\n"; 
macro1 += "SET !DATASOURCE c:\\proxy.txt" + "\n"; 
macro1 += "SET !DATASOURCE_COLUMNS 1" + "\n"; 
macro1 += "SET !DATASOURCE_LINE {{n}}" + "\n"; 
macro1 += "PROXY ADDRESS={{!COL1}}" + "\n"; 
macro1 += "pause" + "\n"; 

for (i = 1; i <= 10; i++) 
    { 
    var n = 1 
    do 
     { 
     iimSet("n",n) 
     iimPlay(macro); 

     var ret = iimGetLastExtract(); 
     if(ret == "https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif") 
      { 
      break; 
      } 
     n++; 
     } while(true) 


    iimSet("n",n); 
    iimPlay(macro1); 
    } 

답변

0

코드를 다시 작성했습니다. 그것을 테스트하고 우리에게 피드백을주십시오.

var macro1; 

macro1 = "CODE:"; 
macro1 += "SET !ERRORIGNORE YES" + "\n"; 
macro1 += "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
macro1 += "SET !DATASOURCE c:\\proxy.txt" + "\n"; 
macro1 += "SET !DATASOURCE_COLUMNS 1" + "\n"; 
macro1 += "SET !DATASOURCE_LINE {{i}}" + "\n"; 
macro1 += "CLEAR" + "\n"; 
macro1 += "PROXY ADDRESS={{!COL1}}" + "\n"; 
macro1 += "URL GOTO=https://www.youtube.com/" + "\n"; 
macro1 += "TAG POS=1 TYPE=IMG ATTR=ID:logo EXTRACT=HREF" + "\n"; 

var macro2; 

macro2 = "CODE:"; 
macro2 += "SET !ERRORIGNORE YES" + "\n"; 
macro2 += "CMDLINE !DATASOURCE c:\\search_words.txt" + "\n"; 
macro2 += "SET !DATASOURCE_COLUMNS 1" + "\n"; 
macro2 += "SET !DATASOURCE_LINE {{i}}" + "\n"; 
macro2 += "SET !ERRORIGNORE YES" + "\n"; 
macro2 += "SET !ERRORCONTINUE YES" + "\n"; 
macro2 += "TAB T=1" + "\n"; 
macro2 += "TAG POS=1 TYPE=TD ATTR=ID:gs_tti50 CONTENT={{!COL1}}" + "\n"; 
macro2 += "pause" + "\n"; 

var limit = prompt("How many loops you want to do.", 10); 

limit = parseInt(limit); 

var proxy_counter = 1; 

for (i = 1; i <= limit; i++) { 

    //open youtube and extract logo link 
    iimSet("i", proxy_counter) 
    iimPlay(macro1); 

    var extracted = iimGetLastExtract(); 

    //if the logo link is present then fill search box 
    //if not then go to next loop, change proxy, open yt and start over 
    if (extracted != "#EANF#") { 
     iimSet("i", i) 
     iimPlay(macro2); 
    } else { 
     proxy_counter++; 
    } 
} 
+0

"매크로 1"코드가 루프에 들어가고 "매크로 2"코드가 실행되지 않습니다. 오후 8시 30 분 P.S. 코드를 업데이트했지만 여전히 문제가 있습니다. 도와 주셔서 감사합니다. – Mike

+0

이것은 페이지에 로고가 없음을 의미 할 수 있습니다. 나는 또한 코드의 set loop 부분을 제거했다. 지금 작동하는지 알려주세요. – macroscripts

+0

감사. 이 코드는 "if"블록에서 "macro1"을 "macro2"로 변경하면 이전 코드와 마찬가지로 잘 작동합니다. 하지만 그것은 내 것과 같은 문제가 있습니다. "매크로 2"코드가 실행되면 프록시 설정이 재설정됩니다 ... – Mike