使用集合!javascript iMacros中的VAR1 EVAL

使用集合!javascript iMacros中的VAR1 EVAL,javascript,imacros,data-extraction,Javascript,Imacros,Data Extraction,我有一个.iim 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=pa

我有一个.iim 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文件不能作为循环自动执行,我尝试将其转换为iMacros javascript:

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);

}
为此:

SET !VAR1 EVAL(\"var a=\'{{!EXTRACT}}\'; var b=a.indexOf(\"total\"); var c=parseFloat(a.substring((b+9),(b+9+3))); c\)
然后我得到这个错误:

SET命令第9行格式错误(错误代码:910)

有没有办法让这一切顺利进行?我还尝试从一个.js文件启动.iim文件,并从那里循环它,但是之后!循环总是1,它总是读取csv的第一行。。所以这很没用

非常感谢

试着这样做:

extract +=  'SET !VAR1 EVAL("var a=\'{{!EXTRACT}}\'; var b=a.indexOf(\'total\'); var c=parseFloat(a.substring((b+9),(b+9+3))); c")' + "\n";

哇!难以置信的您刚刚将所有的“改为”…为什么?这是iMacros上的一个bug还是应该这样写?这是使用“iMacros”+JavaScript作为字符串符号的规则。您也可以这样写:
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 !VAR1 EVAL("var a=\'{{!EXTRACT}}\'; var b=a.indexOf(\'total\'); var c=parseFloat(a.substring((b+9),(b+9+3))); c")' + "\n";