如何使用iMacros提取链接?

时间:2014-02-26 19:26:12

标签: imacros

我无法理解iMacros的语法。
我想做什么。
1)转到我博客的第一页
2)查找包含单词“post”的链接
3)转到步骤2中找到的链接
4)返回上一页
5)找到另一个相同的链接
6)如果没有相同的链接,找到“下一个”字的链接(这意味着下一页)
7)转到该页面 8)返回步骤2

听起来像是个计划。然后脚本将打开页面上的所有帖子,保存它们并转到另一页面 我怎样才能做到这一点?我尝试了TAG和POS属性,但它们只显示错误

1 个答案:

答案 0 :(得分:2)

你错了。 iMacros不能这样做。 iMacros不能做IF条款。为此,您必须使用JavaScript脚本。

1)转到我博客的第一页 2)查找包含单词“post”的链接 3)转到步骤2中找到的链接 4)返回上一页 5)找到另一个相同的链接 6)如果没有相同的链接,找到“下一个”字的链接(这意味着下一页) 7)转到该页面 8)返回第2步

这就是你要问的。

var macro;

macro ="CODE:";
macro +="URL GOTO=www.myblog.com"+"\n";


var macro1;

macro1 ="CODE:";
macro1 +="TAG POS=1 TYPE=A ATTR=TXT:*post* EXTRACT=HREF"+"\n";

var macro2;

macro2 ="CODE:";
macro2 +="URL GOTO={{link}}"+"\n";

var macro3;

macro3 ="CODE:";
macro3 +="TAG POS=1 TYPE=A ATTR=TXT:*next* EXTRACT=HREF"+"\n";

//go to link
iimPlay(macro)

//extract the link on page with text post
iimPlay(macro1)

var link=iimGetLastExtract();

//if there is such a link go to it
if(link!="#EANF#")
{

iimSet("link",link)
iimPlay(macro2)

}

//go to previous page
iimPlay(macro)

//extract the link with text post
iimPlay(macro1)

link=iimGetLastExtrac();

//if there is not a link like that extract link with text next
if(link=="#EANF#")
{

//extract link with text next
iimPlay(macro3)

var next_link=iimGetLastExtract();

//if there is a link with text next navigate to it
if(next_link!="#EANF#")
{

//navigate to link with text 
iimSet("link",next_link)
iimPlay(macro2)

}

}

所以尝试一下这个,你就会得到宏的答案。这必须放在.js文件中,没有其他扩展!