iMacro 常用指令與變數

URL GOTO=url
開啟指定的網址,但開啟某些網頁時會出現-933的error code,可以用SET !ERRORIGNORE YES 忽略。這部分很怪,明明瀏覽器出現了網頁的內容,卻有-933的error code, 而error code -933代表的是Network error while file or page loading這該不會是bug?!

WAIT SECONDS=n, 等待n秒,某些網站Ajax個技術更新內容的時候就會用到

SET 設定內建變數,這部分免費版的iMarco只有內建變數跟!VAR1, !VAR2, !VAR3這幾個變數可以用。免費版無法自訂變數。
 變數取值{{!變數名稱}},例如:取得!VAR1的資料→{{!VAR1}}

內建的時間變數取值{{!NOW:yyyymmdd_hhnnss}} 
+ yyyy - 西元年
+ mm - 月
+ dd - 日
+ hh - 小時
+ nn - 分(這跟習慣的time format有點不太一樣)
+ ss - 秒

'註解

SAVEAS TYPE=(CPL|MHT|HTM|TXT|EXTRACT|JPEG|PNG) FOLDER=folder_name FILE=file_name  

TYPE:
  • CPL - 完整網頁
  • MHT - 封存網頁檔
  • HTM - 只有HTML
  • TXT - 只有文字,HTML標籤會被忽略
  • EXTRACT 要配合TAG ... EXTRACT=TXT|TXTALL|HTM ...
  • JPEG - 將網頁存成圖檔(免費版不支援Flash,所以Flash的部分會是空白)
  • PNG - (同TYPE=JPEG)
FOLDER:
  • FOLDER=*(將檔案下載到C:\Documents and Settings\{username}\My Documents\iMacros\Downloads)
  • FOLDER=C:\Download(將檔案存到C:\Download)
FILE:
  • FILE=* (使用預設檔名extract.csv)
  • FILE=test1 (設定檔名為test1,副檔名可以忽略,iMacros會自動把TYPE=..當成副檔名補上)
  • FILE=+{{!NOW:yyyymmdd}} (檔名:網頁標題+yyyymmdd)
注意事項:
  • FOLDER與FILE中若有空白字元,要用<SP>來替代空白字元。
  • 若TYPE=TXT,檔案已經存在的話,會將內容附加到檔案尾端。若是TYPE=JPEG|PNG的話,會覆蓋檔案內容。

ONDOWNLOAD FOLDER=folder_name FILE=file_name  
FOLDER:
  • FOLDER→設定方法與SAVEAS相同
  • FILE→設定方法與SAVEAS相同

TAG POS=n TYPE=type [FORM=form] ATTR=attr [CONTENT=some_content]  
  • POS=n 某個標籤的絕對位置(在HTML檔案中的順序)
  • TYPE=標籤名
  • FORM=表單名稱
  • ATTR=標籤屬性
  • CONTENT=配合FORM填入特定值,或是觸發特定事件如EVENT:SAVEITEM

TAG指令的參數自己填很麻煩,所以通常是用錄製的方式去點選網頁元素,讓iMarcos自動填上相關TAG指令的參數。

錄製模式中的Click Mode通常選擇第一個就可以了














ONDOWNLOAD與TAG這兩個指令常配合一起使用,用來抓取網頁中特定的項目,如指定的圖片或文字。

例如: 從玩股網抓騰落線圖,並將檔案存到C:\ADLines, 檔名為ADLine_yyyymmdd.png

URL GOTO=http://www.wantgoo.com/hottip.aspx?m=adline
ONDOWNLOAD FOLDER=C:\ADLines FILE=ADLine_{{!NOW:yyyymmdd}}.png
TAG POS=1 TYPE=IMG ATTR=ID:ctl00_service_ADline1_imgADline CONTENT=EVENT:SAVEITEM
上面藍字的部分是用iMacros錄製完畢之後,自己再加上去的。

例如: 從StockQ抓取經濟數據
URL GOTO=http://www.stockq.org/economy/
TAG POS=7 TYPE=TABLE ATTR=TXT:* EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=C:\ FILE=StockQ.csv
上面藍字的部分是用iMacros錄製完畢之後,自己再加上去的。

用ONDOWNLOAD設定TAG CONTENT=
  • EVENT:SAVEITEM
  • EVENT:SAVE_ELEMENT_SCREENSHOT
的存檔的目錄與檔名。

TAG CONTENT參數只能用在:
  • 填表單資料
  • 觸發事件,如: CONTENT=EVENT:SAVEITEM
  • TAG CONTENT=EVENT:SAVEITEM不能與EXTRACT一起使用

另外,TAG比較麻煩的地方是抓HTML TABLE的部分,有時候需要自己開網頁原始碼來算一下,要的資料是在第幾個TABLE 。

有用到EXTRACT參數的話記得要把SET !EXTRACT_TEST_POPUP NO,要不然會跳出視窗,腳本會停在TAG EXTRACT=...那一行。

EXTRACT=TXT|TXTALL|HTM|HREF|TITLE
  • TXT 標籤所包圍的文字內容
  • TXTALL 下拉式選單的內容
  • HTM HTML
  • HREF 抓取<A>的HREF屬性
  • TITLE 抓取<A>...</A>所包圍的文字
詳細範例可參照:http://wiki.imacros.net/Data_Extraction

關於TAG參數EXTRACT與SAVEAS指令:
  • If several EXTRACT commands appear in one macro the results are separated by the string [EXTRACT]. This string is automatically translated into a line break when using the "SAVEAS TYPE=EXTRACT" command. 
  • If complete tables were extracted then adjacent table elements are separated by the string #NEXT# and ends of table rows are delimited by the string #NEWLINE#. These tags are automatically translated into commas and newlines when you use the "SAVEAS TYPE=EXTRACT" command. 

TAB (T=n|OPEN|CLOSE|CLOSEALLOTHERS)
  • T=n, 指定第n個分頁作為目前分業
  • T=OPEN, 在背景開啟新分頁
  • T=CLOSE, 關閉目前分頁
  • T=CLOSEALLOTHERS, 關閉目前分頁外的所有其他分頁


免費版很多功能都沒有或是不完整,詳細可參考:http://iopus.com/imacros/compare/all/
目前免費版最好用的功能是: 抓取網頁文字或是將網頁存成圖片(網頁中若有Flash就要找其他方案了)

Reference:

1 則留言: