Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Imacro:如果标记不';不匹配页面上的任何元素?_Loops_Extract_Imacros - Fatal编程技术网

Loops Imacro:如果标记不';不匹配页面上的任何元素?

Loops Imacro:如果标记不';不匹配页面上的任何元素?,loops,extract,imacros,Loops,Extract,Imacros,我希望我的代码在标记与页面中的任何元素都不匹配的情况下打破循环,但这不起作用 var result = ""; var counter = 1; while(true) { var ret_code = iimPlay("CODE:TAG POS="+counter+" TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0 EXTRACT=HREF",60); if(ret_code<0) break

我希望我的代码在标记与页面中的任何元素都不匹配的情况下打破循环,但这不起作用

var result = "";
var counter = 1;
while(true)
{    
var ret_code = iimPlay("CODE:TAG POS="+counter+" TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0 EXTRACT=HREF",60);
    if(ret_code<0)
        break;
    s = iimGetLastExtract();    
    result += " "+s;    
    counter++;
}
var结果=”;
var计数器=1;
while(true)
{    
var ret_code=iimPlay(“code:TAG POS=“+counter+”TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0摘录=HREF“,60);
if(重新编码
但我从来没有用过这种方法,所以我把它改成了这个

iimSet("counter",counter)
var ret_code = iimPlay("CODE:TAG POS={{counter}} TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0 EXTRACT=HREF",60)
除此之外,我看不出有任何错误。试试看,如果它不起作用,我们将尝试其他方法

但我从来没有用过这种方法,所以我把它改成了这个

iimSet("counter",counter)
var ret_code = iimPlay("CODE:TAG POS={{counter}} TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0 EXTRACT=HREF",60)

除此之外,我没有发现任何错误。尝试一下,如果它不起作用,我们将尝试其他方法。

您的代码永远不会停止,因为ret_代码将始终为1,因为您正在刮取数据,即使未找到元素,也将成功刮取并返回等于“#EANF”的默认值,若要使此代码按您的意愿工作,您需要将其拆分为两个步骤-第一步将检查元素是否存在,第二步将清除-以下是示例:

var result = "";
var counter = 1;
while(true)
{    
iimSet("counter",counter);
var ret_code = iimPlay("CODE:TAG POS={{counter}} TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0");
    if(ret_code<0){break;}
iimSet("counter",counter);
ret_code = iimPlay("CODE:TAG POS={{counter}} TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0 extract=href");
    s = iimGetLastExtract();    
    result += " "+s;    
    counter++;
}
var结果=”;
var计数器=1;
while(true)
{    
iimSet(“计数器”,计数器);
var ret_code=iimPlay(“code:TAG POS={{counter}}TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0");

如果(ret_code您的代码永远不会停止,因为ret_code始终为1,因为您正在刮取数据,即使未找到元素,也会成功刮取并返回等于“#EANF#”的默认值,若要使此代码按您的意愿工作,您需要将其拆分为两个步骤-第一步将检查元素是否存在,第二步将清除-以下是示例:

var result = "";
var counter = 1;
while(true)
{    
iimSet("counter",counter);
var ret_code = iimPlay("CODE:TAG POS={{counter}} TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0");
    if(ret_code<0){break;}
iimSet("counter",counter);
ret_code = iimPlay("CODE:TAG POS={{counter}} TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0 extract=href");
    s = iimGetLastExtract();    
    result += " "+s;    
    counter++;
}
var结果=”;
var计数器=1;
while(true)
{    
iimSet(“计数器”,计数器);
var ret_code=iimPlay(“code:TAG POS={{counter}}TYPE=A ATTR=HREF:http://www.xxx.com/index.php?topic=*.0");

如果(ret_codeCONTENT=EVENT:MOUSEOVER始终适用于我。如果元素存在,它将返回true,如果不存在,它将返回false。从未尝试过此操作,但无论如何,在浏览器中模拟鼠标悬停是非常不可靠的,因为您可以将鼠标移动到浏览器上,这将破坏指定元素上的悬停效果,因此我不建议这样做。)=事件:MOUSEOVER始终适用于我。如果元素存在,它将返回true,如果不存在,它将返回false。从未尝试过此操作,但无论如何,在浏览器中模拟鼠标悬停是非常不可靠的,因为您可以将鼠标移到浏览器上,这将破坏指定元素上的悬停效果,因此我不建议这样做