【问题标题】:imacros javascript save data to file giving error in firefoximacros javascript将数据保存到文件中,在Firefox中出现错误
【发布时间】:2013-11-14 22:55:00
【问题描述】:

当我在 firefox 中执行这个 javascript .js 文件时会报错

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

alexa 上的这个 url 每页有 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");
}

谁能帮帮我。

【问题讨论】:

    标签: javascript imacros


    【解决方案1】:

    根据您提供的新要求进行编辑。我想你想要下面的代码。仔细查看更改,以便能够在您未来的宏中复制它们。另请注意,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:它没有经过测试,但它应该可以工作。如果它不让我知道。

    【讨论】:

    • 按照 symbiotech 和 Bestmacros 的建议修改了脚本。更新了新脚本。这次稍微好一点,但我现在只得到“0,1,2”的结果值。假设根据需要保存网站网址。你能建议错误在哪里吗
    • 哇!这行得通。一些事情。它为每个条目节省了 3 行。
    • 对于每个条目,它正在保存“”、url、“”,它正在保存引号和实际数据,然后是引号。你知道如何避免这种节省
    • 替换了“macro +=”TAG POS={{i}} TYPE=H2 ATTR=* EXTRACT=TXT" + jsLF;"这一行使用“宏 +=”标签 POS={{i}} TYPE=A ATTR=HREF:* EXTRACT=TXT”+ jsLF;”现在它没有节省额外的行。但它仍然使用后缀和前缀双引号保存每个条目。我们需要删除它你能帮忙吗
    • @user2994113 你无法避免“”,它们是构成有效 csv 文件的 Imacros 格式的一部分。但是,您可以将文件的扩展名从 .txt 更改为 .csv 。这样,当您在 excel 中打开文件时,这些双引号将消失,您可以将其导出为其他内容。
    【解决方案2】:

    试试这个

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

    【讨论】:

    • 感谢您的及时回复。我试过了,但没有运气。仍然出现同样的错误。
    • 感谢您的及时回复。我试过了,但没有运气。仍然得到同样的错误。此语句给出错误 SyntaxError: wrong format of SET command, line: 1 (Error code: -910) iimPlay("CODE:SET !EXTRACT{{i}}\n SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE= hiprsites.txt");
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多