0
我有一個.iim iMacros的文件從網站中提取文本,它看起來像這樣:使用SET VAR1 EVAL在JavaScript的iMacros
SET !DATASOURCE listofurls.csv
SET !DATASOURCE_LINE {{CSV}}
URL GOTO={{!COL1}}
WAIT SECONDS=1
TAG POS=1 TYPE=PRE ATTR=TXT:* EXTRACT=TXT
SET !VAR1 EVAL("var a=\"{{!EXTRACT}}\"; var b=a.indexOf(\"total\"); var c=parseFloat(a.substring((b+9),(b+9+3))); c")
SET !EXTRACT NULL
SET !EXTRACT {{!VAR1}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=result.csv
它運行在播放(循環)模式好,但需自動作爲循環運行,自動從shell腳本啓動它。作爲一個正常的.iim文件不能被自動爲環路我試圖將其轉換爲JavaScript的的iMacros:
var accounts = 10;
for(i = 1; i <= accounts; i++){
iimDisplay("Current loop: "+ i);
var extract;
extract = "CODE:";
extract += "SET !DATASOURCE followersapi.csv" + "\n";
extract += "SET !DATASOURCE_LINE {{CSV}}" + "\n";
extract += "URL GOTO={{!COL1}}" + "\n";
extract += "WAIT SECONDS=2" + "\n";
extract += "TAG POS=1 TYPE=PRE ATTR=TXT:* EXTRACT=TXT" + "\n";
extract += "SET !VAR1 EVAL("var a=\"{{!EXTRACT}}\"; var b=a.indexOf(\"total\"); var c=parseFloat(a.substring((b+9),(b+9+3))); c")" + "\n";
extract += "SET !EXTRACT NULL" + "\n";
extract += "SET !EXTRACT {{!VAR1}}" + "\n";
extract += "SAVEAS TYPE=EXTRACT FOLDER=* FILE=result.csv" + "\n";
iimSet("CSV", i);
iimPlay(extract);
}
我得到這個錯誤:
SyntaxError: missing ; before statement, line 23 (Error code: -991)
經過一番研究修改這條線就從這個:
SET !VAR1 EVAL("var a=\"{{!EXTRACT}}\"; var b=a.indexOf(\"total\"); var c=parseFloat(a.substring((b+9),(b+9+3))); c")
這樣:
SET !VAR1 EVAL(\"var a=\'{{!EXTRACT}}\'; var b=a.indexOf(\"total\"); var c=parseFloat(a.substring((b+9),(b+9+3))); c\)
然後我得到這個錯誤:
wrong format of SET command, line 9 (Error code: 910)
我如何能得到這個工作任何想法?我也嘗試從.js文件啓動.iim文件,並從那裏循環,但是!LOOP始終爲1,它總是讀取csv的第一行。所以它非常沒用。
非常感謝!
Woho!難以置信!你只是改變了所有的「爲了......」爲什麼這樣?它是iMacros上的錯誤還是應該這樣寫? – Ritenour
這就是使用'iMacros'+ JavaScript作爲字符串表示法的規則,你也可以這樣寫: (提取+ =「SET!VAR1 EVAL(\」var a ='{{EXTRACT}}'; var b = a.indexOf('total'); var c = parseFloat(a.substring((b + 9) ,(b + 9 + 3))); c \「)」+「\ n」;'。 – Shugar