2014-02-26 78 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