imacros javascript将数据保存到firefox文件中给出错误

时间:2013-11-14 22:55:01

标签: javascript imacros

当我在firefox中执行此javascript .js文件时,它会出错

SyntaxError: wrong format of SET command, line: 1 (Error code: -910)

这个关于alexa的网址每页有25个结果,有20个这样的页面。我需要捕获所有25 x 20 = 500的结果并将它们保存到文件中。

var jsLF="\n";

var macro;
macro =  "CODE:";
macro +=  "VERSION BUILD=9002379" + jsLF; 
macro +=  "TAB T=1" + jsLF; 
macro +=  "TAB CLOSEALLOTHERS" + jsLF; 
macro +=  "URL GOTO=http://www.alexa.com/topsites/countries/ID" + jsLF; 
macro +=  "TAG POS={{i}} TYPE=H2 ATTR=* EXTRACT=TXT" + jsLF; 

var macro1;
macro1  =  "CODE:";
macro1 +=  "VERSION BUILD=9002379" + jsLF; 
macro1 +=  "TAB T=1" + jsLF; 
macro1 +=  "TAB CLOSEALLOTHERS" + jsLF; 
macro1 +=  "URL GOTO=http://www.alexa.com/topsites/countries;{{j}}/ID" + jsLF; 

//loop all the pages for each page get data
for (var j=0;j<3;j++)
{
iimDisplay(j);    
iimSet("j", j);
iimPlay(macro1);
//iimPlay("CODE:SET !EXTRACT {{j}}jsLF SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=hiprsites.txt");

//loop the first page and get result
for(var i=0;i<3;i++)    
{
iimDisplay(i);    
iimSet("i", i);
iimPlay(macro);
iimSet("i",i);
iimPlay("CODE:SET !EXTRACT {{i}}jsLF SAVEAS TYPE=EXTRACT FOLDER=C:\\   FILE=hiprsites.txt");
}

有人可以帮助我。

2 个答案:

答案 0 :(得分:2)

根据您提供的新要求进行修改。我想你想要的东西就像下面的代码。仔细查看更改,以便在将来的宏中复制它们。还要注意ID是印度尼西亚的国家代码,因此使用下面的宏观,您将获得该国家的500个结果。使用您所在国家/地区所需的代码更改该代码。

var jsLF="\n";

var macro;
macro =  "CODE:";
macro += "VERSION BUILD=9002379" + jsLF; 
macro += "TAB T=1" + jsLF; 
macro += "TAB CLOSEALLOTHERS" + jsLF; 
macro += "TAG POS={{i}} TYPE=H2 ATTR=* EXTRACT=TXT" + jsLF;
macro += "SAVEAS TYPE=EXTRACT FOLDER=C:\\   FILE=hiprsites.txt" + jsLF;

var macro1;
macro1  =  "CODE:";
macro1 +=  "VERSION BUILD=9002379" + jsLF; 
macro1 +=  "TAB T=1" + jsLF; 
macro1 +=  "TAB CLOSEALLOTHERS" + jsLF; 
macro1 +=  "URL GOTO=http://www.alexa.com/topsites/countries;{{j}}/ID" + jsLF; 

//loop all the pages for each page get data
for (var j=0;j<20;j++)
{
iimDisplay(j);    
iimSet("j", j);
iimPlay(macro1);

//loop the current page and get all 25 result
for(var i=1;i<=25;i++)    
{
iimDisplay(i);    
iimSet("i", i);
iimPlay(macro);
iimSet("i",i);
}
}

PS:它没有经过测试,但应该可以使用。如果它不让我知道。

答案 1 :(得分:1)

试试这个

iimSet("i", i);    
iimPlay(macro);
iimSet("i", i);   
iimPlay("CODE:SET !EXTRACT {{i}}\n SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=hiprsites.txt");