今日もiMacros関連の記事です。
iMacros でマクロ処理を連続して行なっている際、デフォルトでは何らかのエラーが出ると処理が止まってしまいます。
基本的にはそれで問題ないのですが、場合によってはエラーが出ても無視して次の処理を続行して欲しいケースもあるかと思います。
その場合は、マクロのコードの最初のほうに、
SET !ERRORIGNORE YES
という一行を書いておけばOKです。
今回も iMacros関連の記事です。
ブラウズ中のページから、特定の条件にマッチする文字列を抽出して、変数に入れてなんらかの処理をする方法を解説します。
iMacros でクリップボードの内容を変数に入れて処理を行なう方法の続きということで、例として「Googleで検索した後、検索結果から特定のドメイン(仮に d.hatena.ne.jp とします)のページにアクセスする」という処理を書いてみます。
※この条件ならGoogle で「site:」で検索すればいいだけなんですけど、サンプルということでw
TAB T=1 URL GOTO=http://www.google.co.jp/ SET !VAR1 {{!CLIPBOARD}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f ATTR=ID:q CONTENT={{!VAR1}} TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:sfrm ATTR=ID:btnG TAG POS=1 TYPE=A ATTR=HREF:http://d.hatena.ne.jp/* EXTRACT=HREF SET !VAR2 {{!EXTRACT}} URL GOTO={{!VAR2}} SET !EXTRACT NULL
1~5行目はiMacros でクリップボードの内容を変数に入れて処理を行なう方法と全く同じなので割愛します。
クリップボードの中身をキーワードにしてGoogleで検索を行なう処理部分です。
というわけで6行目。
TAG POS=1 TYPE=A ATTR=HREF:http://d.hatena.ne.jp/* EXTRACT=HREF
これは、「ページ内で一番最初に見つかった href属性が http://d.hatena.ne.jp/ ではじまる a要素の、href属性の中身を抽出するよ」という処理です。
ややこしいですが、要するに検索結果の中から一番はじめに出てくる http://d.hatena.ne.jp/ で始まるURLを抽出しているわけです。
7行目。
SET !VAR2 {{!EXTRACT}}
ここで、抽出した文字列を「VAR2」という変数にセットしています。
8行目。
URL GOTO={{!VAR2}}
これは簡単ですね。
変数「VAR2」に入っているURLにアクセスしています。
9行目。
SET !EXTRACT NULL
抽出した文字列をいったんリセットして空にしています。
なお、
TAG POS=2 TYPE=A ATTR=HREF:http://d.hatena.ne.jp/* EXTRACT=HREF
とすれば、二番目にマッチした文字列を抽出してくれます。
なので、
TAG POS=3 ~~
TAG POS=4 ~~
TAG POS=5 ~~
と処理していくことによって、何件も一気に処理を行なうことが可能です。
昨日紹介した、Firefox でマクロ処理を行なえるアドオン「iMacros」の関連記事です。
クリップボードにコピーした文字列を、iMacros 内部で変数として保持したうえで、何らかのマクロ処理を行なう方法を解説します。
変数「VAR1」にクリップボードの内容をセットするには、以下のようなコードになります。
SET !VAR1 {{!CLIPBOARD}}
これを元に、ちょっとした応用スクリプトとして、「クリップボードの内容を検索ワードとして、Googleで検索する処理」を書いてみましょう。
TAB T=1 URL GOTO=http://www.google.co.jp/ SET !VAR1 {{!CLIPBOARD}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f ATTR=ID:q CONTENT={{!VAR1}} TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:sfrm ATTR=ID:btnG
1行目から順に、簡単に説明していきます。
TAB T=1
は、Firefoxの1番目のタブで作業しますよ、という指定です。
続いて2行目。
URL GOTO=http://www.google.co.jp/
これは簡単ですね。http://www.google.co.jp/ というURLにアクセスしますよ、という意味です。
SET !VAR1 {{!CLIPBOARD}}
ここで、クリップボードの内容を変数VAR1にセットしました。
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f ATTR=ID:q CONTENT={{!VAR1}}
これは、「fというname属性を持つ form要素内にある、qというid属性を持つ input要素(type="text")の入力欄に、変数VAR1の内容を入力するよ、ということです。
要するに、iGoogleの検索ボックスにクリップボードの内容(変数VAR1)を入力するわけですね。
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:sfrm ATTR=ID:btnG
これは、「sfrmというid属性を持つ form要素内の、btnGというid属性を持つ submitボタンをクリックするよ、ということです。
つまりは、検索ボタンをクリックする、ということですね。
フォーム内のどのボタンをクリックするか、とかどの input要素にテキストを入れるか、とかを全部コードで書いてると結構めんどくさいので、一旦 iMacros の「Rec」タブから「Record」ボタンで作業を記録した後、「Edit」タブの「Edit Macro」ボタンで編集画面を開いて、変数を利用する部分等だけを修正するのが楽かと思います。
Firefox にマクロ機能を追加できる「iMacros for Firefox」の紹介です。
Webベースのアプリケーション等で、毎日同じ作業を行なったりする場合、「iMacros」を利用してマクロ化してしまうことで、非常に効率よく作業を済ませることができます。
上記サイトから iMacros をアドオンとして追加すると、Firefox に左のようなサイドバーが追加されます。
このサイドバーを使って、マクロの記録や再生を行ないます。
マクロの記録を行なう場合は「REC」タブを開いて「Record」ボタンをクリック。
すると、iMacros のサイドバーが記録モードになります。
普段ブラウザで行なっているルーチンワークをそのまま行なえば、その作業が記録されていきます。
作業が終わったら「Stop」ボタンをクリック。
記録した作業は「#Current.iim」というマクロとして、いったん保存されます。
この「#Current.iim」は、記録するたびに上書きされますので、保存が終わったら、右クリックから「Rename」を選んで、別の名前を設定しておきましょう。
記録した作業を実行するためには「Play」タブから「Play」をクリックすればOKです。
変数利用など、より複雑なマクロ処理を行いたい場合は「Edit」タブから「Edit Macro」をクリックすることで、iMacros 独自の言語でマクロ処理をプログラミングすることができます。
※参考: Command Reference - iMacros (英語サイト)