2014-02-26 37 views
2

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

听起来像一个计划。然后脚本将打开页面上的所有帖子,保存它们并转到另一页面。
我该怎么做?我尝试了TAG和POS属性,但它们只显示错误如何去iMacros提取链接?

回答

2

你错了。 iMacros无法做到这一点。 iMacros不能执行IF子句。为此你必须使用JavaScript脚本。

1)进入到我的博客的第一页 2)查找包含词“后” 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文件中,并且不能有其他扩展名!

+1

非常感谢!那很棒。 – Groosha