Yahooのリンクをクリックしてみよう

Sponserd Link

iMacrosはTAGコマンドを使ってリンクや画像をクリックすることが出来ます。ポイントサイトのクリック記事で、画像のクリックの方法をお伝えしたので、今度は日本最大のポータルサイトのYahooの記事をクリックする方法をお伝えします。POSとXPATHの使い分けを実践してみましょう。

Yahooのサイト

クリックするのはYahooのポータルサイトの上部にあるニュースの部分のリンクです。この部分はかなり頻繁に更新されていて、ニュースのヘッドラインが表示されていますね。ちょっと見辛いですが、破線で囲んだ左上に “12時22分更新” と書かれています。このリンクを全部クリックするプログラムをiMacrosとJavascriptで作ってみましょう。

 

プログラム作成

ではプログラムを作っていきます。

TAGの解析

まずはiMacrosのTAGコマンドを使うための、対象とするTAGの解析から行いましょう。まずはiMacrosで動作記録を行なってTAGコマンドを作って見ましょう。次の動画のように記録しますよね。

記録したTAGコマンドは次の様にPOSコマンドで、属性ATTRはTXTを使っています。

TAG POS=1 TYPE=A ATTR=TXT:列車が事故<SP>パトカーで試験へ動画NEW

上の画像から時間が経っているのでニュースのヘッドラインが変わっていますが、リンクのテキストは下の画像のニュースのタイトルと同じですね。

では実際のTAGをFirefoxの開発ツールで調べましょう。Yahooのリンクを選択すると、下の画像のように開発ツールでHTMLのタグが青く選択されます。

このAタグ部分だけを見ると以下の様になっていますね。

<a href=”https://rdsig.yahoo.co.jp/_ylt=A2Ri8AcvhVlamyUA72aJBtF7/RV=2/RE=1515902639/RH=cmRzaWcueWFob28uY28uanA-/RB=XuVl34MupZp53LANJ4fhmwUTMRQ-/RU=aHR0cHM6Ly9uZXdzLnlhaG9vLmNvLmpwL3BpY2t1cC82MjY4MjQ5AA–/RK=0/RS=MDemRixA3daC.jyD5OUberLL35s-“>列車が事故 パトカーで試験へ<span class=”iconVideo” title=”動画”>動画</span><span class=”iconNew” title=”NEW”>NEW</span></a>

少し見辛いですが、このAタグの属性はhrefとTXTしかありません。更にこの二つは新しいニュースのたびに変化するものですね。ということで、先ほど記録したiMacrosのPOSを使ったTAGコマンドでは、ニュースが更新されるとクリック出来なくなります。

このようにTAGの属性が変化するものの場合は、POSとXPATHの使い分け記事で説明したとおり、POSではなくXPATHを使いましょう。

XPATHを作る

ではAタグの示すまでのタグの構造を見てみましょう。

Aタグから上に辿っていくと、下の図の様な構造になっていますね。分かりやすいように右側の画像で考えましょう。緑色のdivやulタグには変化しにくいidやclass属性が設定されています。それではこの属性を使ってXPATHを作って見ましょう。

XPATHの作り方で説明したように、変化しにくいidやclassがある緑のタグを基準に作ります。ということでXPATHは以下の4つが出来ます。

  1. //div[@id=”topicsboxbd”]/div[1]/div[1]/ul[1]/li[1]/a”
  2. //div[@id=”topicsfb”]/div[1]/ul[1]/li[1]/a”
  3. //div[@class=”topicsindex”]/ul[1]/li[1]/a
  4. //ul[@class=’emphasis’]/li[1]/a

今回は一番短くかける4番目のXPATHでプログラムを作りましょう。

iMacrosのTAGコマンド

先ほどのXPATHを使ってTAGコマンドを作りましょう。次のようになりますね。

TAG XPATH=”//ul[@class=’emphasis’]/li[1]/a”

XPATHで繰り返し

XPATHで同じ種類のタグを表すときは、タグの後ろのある[ ]の数字を変更することで出来るようになります。

他のニュースを表す構造がどうなってか見るために、ulタグを<ul> から</ul>を見ると次のようになっていますね。ul直下にliが並んでいることが分かります。

ここから二つ目のリンクをクリックするTAGコマンドは次のようになりますね。liの後ろの[ ]内の数字が2になっていますね。つまり、他のリンクをクリックするには、liの数字を変更すれば良いことになります。

TAG XPATH=”//ul[@class=’emphasis’]/li[2]/a”

全てのニュースリンクをクリックするプログラム

ではJavascriptと連携させたプログラムを作りましょう。

今回はニュースリンクの数が8と決まっているので、他のリンクのクリックは決まった数を繰り返すFor文で行います。

それから、リンクをクリックするとそのタブでリンクを開くので、一度Yahooのポータルサイトへ戻るために “BACK” コマンドを使用します。

iMacrosを途中で止めるために、Stopボタンを押した時の処理を加えましょうね。

以上を考えたリンクをクリックするプログラムは、次のようになります。

動作させると以下の動画のように、Yahooのニュースリンクを自動的に次々とクリックするしていきます。

 

ということで、Yahooのニュースリンクを全部クリックするiMacrosのプログラムが出来ました。

今回はXPATHでサイトのタグをクリックする具体例でした。

Sponserd Link