imacros javascript有条件跳过数据提取 [英] imacros javascript conditional skip of data extract

查看:98
本文介绍了imacros javascript有条件跳过数据提取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

时将失败。网站故意放随机广告。是否可以使用#EANF#不确定如何编码来处理它。请帮忙。这样的事情。

while executing below loop fails as soon as a advertisement is encountered. Site purposefully put random advertisement. is it possible to handle it with #EANF# not sure how to code it. please help. Something like this.

//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)
}


推荐答案

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

use iimGetExtract http://wiki.imacros.net/iimGetExtract to get extracted value after each block of code which extracts the data (remove SET !EXTRACT NULL to keep the data), after that you can use extracted data as you wish. here is example

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} 

这篇关于imacros javascript有条件跳过数据提取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆