【问题标题】:imacros javascript conditional skip of data extractimacros javascript有条件地跳过数据提取
【发布时间】:2013-12-04 03:23:52
【问题描述】:

一旦遇到广告,执行下面的循环就会失败。网站故意放随机广告。是否可以用#EANF# 来处理它,不确定如何编码。请帮忙。像这样的东西。

//if(text=="#EANF#" || text=="undefined" || text==null || text=="" )
//{
////handle the loop
//}

var jsLF="\n";
var ret=null;

var proxynovaurl; //open url
proxynovaurl  =  "CODE:";
proxynovaurl +=  "VERSION BUILD=9002379" + jsLF; 
proxynovaurl +=  "TAB T=1" + jsLF; 
proxynovaurl +=  "TAB CLOSEALLOTHERS" + jsLF; 
proxynovaurl +=  "URL GOTO=http://www.proxynova.com/proxy-server-list/anonymous-proxies/" + jsLF; 

var proxynova; //extract part #1 value
proxynova =  "CODE:";
proxynova += "VERSION BUILD=9002379" + jsLF; 
proxynova += "TAB T=1" + jsLF; 
proxynova += "TAB CLOSEALLOTHERS" + jsLF; 
proxynova += "TAG POS={{i}} TYPE=TD ATTR=* EXTRACT=TXT" + jsLF;
proxynova += "SET !VAR1 {{!EXTRACT}}" + jsLF;
proxynova += "SET !EXTRACT NULL" + jsLF;
//proxynova += "SAVEAS TYPE=EXTRACT FOLDER=C:\\  FILE=ip-address.csv" + jsLF;

var proxynovamid; //use constant for part #2 value
proxynovamid =  "CODE:";
proxynovamid += "VERSION BUILD=9002379" + jsLF; 
proxynovamid += "TAB T=1" + jsLF; 
proxynovamid += "TAB CLOSEALLOTHERS" + jsLF; 
//proxynovamid += "TAG POS={{j}} TYPE=TD ATTR=* EXTRACT=TXT" + jsLF;
proxynovamid += "SET !VAR2 :" + jsLF;
//proxynovamid += "SET !EXTRACT NULL" + jsLF;

var proxynova1; //extract part #3 value
proxynova1 =  "CODE:";
proxynova1 += "VERSION BUILD=9002379" + jsLF; 
proxynova1 += "TAB T=1" + jsLF; 
proxynova1 += "TAB CLOSEALLOTHERS" + jsLF; 
proxynova1 += "TAG POS={{j}} TYPE=TD ATTR=* EXTRACT=TXT" + jsLF;
proxynova1 += "SET !VAR3 {{!EXTRACT}}" + jsLF;
proxynova1 += "SET !EXTRACT NULL" + jsLF;

var proxynovafinal;
proxynovafinal =  "CODE:";
proxynovafinal += "ADD !EXTRACT {{!VAR1}}" + jsLF;
proxynovafinal += "ADD !EXTRACT {{!VAR2}}" + jsLF;
proxynovafinal += "ADD !EXTRACT {{!VAR3}}" + jsLF;
proxynovafinal += "SAVEAS TYPE=EXTRACT FOLDER=C:\\  FILE=ip-address.csv" + jsLF;

iimPlay(proxynovaurl); //launch url

for(var i=1;i<=236;i=i+6) //1st loop extract 1st part of value
{
iimDisplay(i);
iimSet("i", i);
iimPlay(proxynova);
iimSet("i",i);

iimSet("j",i+1);
//for(var j=17;j<=37;j=j+5) 
//{
//iimDisplay(j);
//iimSet("j", j);
iimPlay(proxynovamid); //extract 2nd part of value
iimPlay(proxynova1);   //extract 3rd part of value
iimSet("j",i+1);
iimPlay(proxynovafinal); //write final concatinated value to file (Part1+part2+part3)
}

【问题讨论】:

    标签: javascript loops conditional imacros skip


    【解决方案1】:

    使用 iimGetExtract http://wiki.imacros.net/iimGetExtract 在每个提取数据的代码块之后获取提取的值(删除 SET !EXTRACT NULL 以保留数据),之后您可以根据需要使用提取的数据。 这是示例

    var proxynova1; //extract part #3 value
    proxynova1 =  "CODE:";
    proxynova1 += "VERSION BUILD=9002379" + jsLF; 
    proxynova1 += "TAB T=1" + jsLF; 
    proxynova1 += "TAB CLOSEALLOTHERS" + jsLF; 
    proxynova1 += "TAG POS={{j}} TYPE=TD ATTR=* EXTRACT=TXT" + jsLF;
    proxynova1 += "SET !VAR3 {{!EXTRACT}}" + jsLF;
    var qqq = iimGetExtract();
    if (qqq == '#EANF#'){ data not found flow} 
    

    【讨论】:

    • 我认为这个网站让我们无法预测提取逻辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多