※当サイトの一部記事にはPRが含まれます

CMくじ自動巡回ツール修正&UWSC画像クリックのサンプルと解説。

TIPS
この記事は約5分で読めます。

dreevee.comのサイト変更で動かなくなってたので修正しました。

うちで作って公開している「CMくじ自動巡回ツール」ですが、いつの間にか、うまく動かなくなってましたね・・・(;^ω^)。まあ、サイト側は変更されるんで、仕方ないんですけどね。

 

というわけで、修正しました。

もし、使ってる方がいましたら、最新版を取得ください。textファイルは過去バージョンのものをそのまま使えます。

UWSCスクリプト ダウンロード

 

自動化しても、たまには見ないとだめですねw。いつの間にかサイト側の仕様変更とかで、動かなくなっていたりしますからね。

特に、CMくじはponcanからdreevee.comに変わってから、動きが安定してませんからね。

なんか、ちょくちょく修正しているみたいだし、広告などもいつの間にか追加されているようです。というか、広告だらけのページになってますね。

 

 

初心者さん向け スクリプト修正内容解説。

せっかくなので、今回修正した内容を解説します。

たいした修正はしてなくて、10分くらいでちょこっと直しただけです。

ただ、UWSC初心者の方には参考になるかもしれません。

 

こちらが今回の修正前後比較です。

20160115_cmkuji_detail01

 

修正のポイントは下記の2点です。

なんか、ページが下にいかなくなったのを修正した。

いつの間にか下に出てくるようになった広告をクリックで消すようにした。

 

 

なんか、ページが下にいかなくなったのを修正した。

まずはこの部分。

url2 = url + "#user-cm-kuji"

 

これはtxtファイルから取ってきたdreeveeのURLに、「#user-cm-kuji」を付け足してます。

これは、クリックしやすいように、WEBページ内のちょうどいい「目印」の部分に、ページをスクロールしてあげる意図があります。

 

例えば、普通にdreeveeのサイトを開くと、以下のようになりますが、

20160115_cmkuji_detail02

引用元:エルネ(dreevee.com) http://dreevee.com/

 

URLに「#user-cm-kuji」を付けると、下記のように下にスクロールした状態で開くわけです。

ね?くじのボタンが押しやすくなったでしょ?(∩´∀`)∩。

20160115_cmkuji_detail03

引用元:エルネ(dreevee.com) http://dreevee.com/

 

これがなぜか、うまく動かなくなっていました。

なので、最初に普通のURLで開いた後、もう一度「#user-cm-kuji」付きURLで開くようにしました。

それがこの部分です。

	IE.Navigate(url2)
	BUSYWAIT(IE)

 

「#」付きURLで開いたときにうまくスクロールできないときは、このように2回開いてあげることでうまく移動できることがあります。(ケースバイケースですけど)

 

 

いつの間にか下に出てくるようになった広告をクリックで消すようにした。

次に、この下に出てくる広告です。

これのせいで、じゃんけんのときにうまくクリックできないのです。いつの間にか出てくるようになってました。

20160115_cmkuji_detail04

 

なので、今度はコイツの「×」ボタンのところをクリックして、広告を削除します。

 

まず、「×」ボタンのところ右クリックして、「要素の検査」を選択しましょう。(Google Chromeの場合は「検証」)

20160115_cmkuji_detail05

 

すると、「×」ボタンのところのhtmlソースコードが見えます。

20160115_cmkuji_detail06

 

aタグの中にimgタグが入っていることから、「画像リンク」であることがわかるわけです。

 

となると、これをクリックするには、以下の記事で書いた、「画像リンクをクリックしたいときはIE.Document.Images」でOKなわけです。

UWSCでリンクがクリックできないときに読む。どんなリンクもクリックしちゃう5つの方法。
「なんかリンクがクリックできないよ・・・」を解決します。 UWSCでIE操作を行う場合、「リンクのクリック」をしたいことはよくあります。 特にポイントサイトの場合、画面の遷移だけでなく、クリックポイントや検索ポイントを取得する際にも必要です...

 

この部分です。

imgタグのalt属性に「Btn floating close」という文字が含まれているようなので、今回は、「POS(“Btn floating close”, IMG_LST.Item(I).Alt) > 0」で「×」ボタンを特定しています。

	IMG_LST = IE.Document.Images
	FOR I = 0 TO IMG_LST.length - 1
	    IFB POS("Btn floating close", IMG_LST.Item(I).Alt) > 0 THEN
	        IMG_LST.Item(I).Click()
	    ENDIF
	NEXT
	BUSYWAIT(IE)

 

めっちゃ簡単でしょ?(そうでもないかな?w)

UWSCの実装の参考にしてくださいまし。(*^-^*)

 

 

ちなみにサイトでエラーが出まくるのは私のスクリプトのせいではありませんのでw

まあ、それはさておき、弁解しておくのですが、サイトでエラーが出まくるのは私のスクリプトのせいではありませんw。

 

なんか、dreeveeのサイトで、

「申し訳ございません。エラーが発生しました。しばらく時間をおいてから再度アクセスしてください。(vbe)」

って出てきたり、

20160115_dreevee_error1

画面が真っ白になったり、

20160115_dreevee_error2

 

とかが、しょっちゅう起こって困るのですが、これはサイト側の問題なので・・・(;^ω^)。

たぶん、javascriptがどこかおかしいか、非同期処理のエラーが出ているとかしてるのでしょう。

 

いくら自動化を頑張っても、サイト側の不具合はどうにもなりませんw(´・ω・`)