お小遣いサイトのクリックポイントを自動で行うツール

暇だったのでちょっと作ってみた

暇だったので以前紹介したお小遣いサイトで一番人気があるげん玉のポイントの森で勝手にクリックしてってくれるやつを作りました。

まずはげん玉の登録はこちらでどうぞ。
げん玉


げん玉の解説は以下の過去記事をどうぞ。
リアルな金額のお小遣いを稼ぐためのたった1つのそのサイトが良い理由 

 

自動化が簡単にできるselenium ide

selenium ideで作成しました。

サンプルのソースを貼るのでselenium ideの入門編になるかもしれません。

げん玉の登録が終わってFirefoxでログインしたら、
Firefoxselenium ideを入れてください。
Firefoxで以下のページの「Selenium IDE」で最新バージョンをクリックしてください。2014/10/14現在は「2.8.0」になっています。

Downloads

クリックするとFirefoxにいろいろ聞かれますが全部許可してインストールを完了し、Firefoxの再起動を行ってください。
ダウンロードするページは英語になってますが、selenium ide自体は日本語になっているので安心してください。

selenium ideでループ処理を行う必要があるため、アドオンのflow controlを以下のページでインストールしてください。

Selenium IDE: Flow Control :: Add-ons for Firefox 

こちらも「今すぐダウンロード」をクリックするとインストールされていきます。再起動したら完了。


selenium ideとflow controlのインストールが終わったらFirefoxを立ち上げて、上部メニューバーのツールをクリックするとselenium ideがいるのでクリックして立ち上げましょう。

f:id:yuruihito:20141014163631p:plain

ほい、そいつがブラウザの動作を記録して自動実行してくれるselenium ideというツールです。
で、「テーブル」の隣の「ソース」をクリック。

f:id:yuruihito:20141014164013p:plain

ソースはこれを丸コピすれば動く

ソースを選択したらそこに以下のコードをまるまるコピペしてください。
全部です全部。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.gendama.jp/" />
<title>げん玉ポイントの森</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">げん玉ポイントの森</td></tr>
</thead><tbody>
<tr>
<td>store</td>
<td>16</td>
<td>i</td>
</tr>
<tr>
<td>label</td>
<td>start</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>http://www.gendama.jp/forest/
<td></td>
</tr>
<tr>
<td>storeElementPresent</td>
<td>xpath=/html/body/div/article/div[3]/div[3]/div[4]/a[${i}]/</td>
<td>point</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${point}==false</td>
<td>end</td>
</tr>
<tr>
<td>storeAttribute</td>
<td>xpath=/html/body/div/article/div[3]/div[3]/div[4]/a[${i}]/@href</td>
<td>link</td>
</tr>
<tr>
<td>open</td>
<td>${link}</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>${i}+1</td>
<td>i</td>
</tr>
<tr>
<td>goto</td>
<td>start</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>end</td>
<td></td>
</tr>
<tr>
<td>store</td>
<td>1</td>
<td>pickup</td>
</tr>
<tr>
<td>label</td>
<td>start2</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>http://www.gendama.jp/forest/
<td></td>
</tr>
<tr>
<td>storeElementPresent</td>
<td>xpath=/html/body/div[@id='wrap']/article[@id='content']/div[@id='main775']/div[@id='forestBox']/div[@id='pickup']/div[@id='pickupBox']/div[${pickup}]/div/p[2]/a</td>
<td>point2</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${point2} != &quot;true&quot;</td>
<td>end2</td>
</tr>
<tr>
<td>storeAttribute</td>
<td>xpath=/html/body/div[@id='wrap']/article[@id='content']/div[@id='main775']/div[@id='forestBox']/div[@id='pickup']/div[@id='pickupBox']/div[${pickup}]/div/p[2]/a@href</td>
<td>link2</td>
</tr>
<tr>
<td>open</td>
<td>${link2}</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>${pickup}+1</td>
<td>pickup</td>
</tr>
<tr>
<td>goto</td>
<td>start2</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>end2</td>
<td></td>
</tr>
<tr>
<td>storeAttribute</td>
<td>xpath=/html/body/div/article/div[3]/div[8]/p/a@href</td>
<td>more_link1</td>
</tr>
<tr>
<td>open</td>
<td>${more_link1}</td>
<td></td>
</tr>
<tr>
<td>store</td>
<td>2</td>
<td>x</td>
</tr>
<tr>
<td>label</td>
<td>more_start</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>http://www.gendama.jp/forest/
<td></td>
</tr>
<tr>
<td>storeElementPresent</td>
<td>xpath=/html/body/div/article/div[3]/div[8]/p[${x}]/a</td>
<td>more_point</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${more_point}==false</td>
<td>the_end</td>
</tr>
<tr>
<td>storeAttribute</td>
<td>xpath=/html/body/div/article/div[3]/div[8]/p[${x}]/a@href</td>
<td>more_link</td>
</tr>
<tr>
<td>open</td>
<td>${more_link}</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>${x}+1</td>
<td>x</td>
</tr>
<tr>
<td>goto</td>
<td>more_start</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>the_end</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>http://www.gendama.jp/forest/popup_forest
<td></td>
</tr>
<tr>
<td>storeAttribute</td>
<td>xpath=/html/body/div/div[2]/div/div[1]/p[1]/a[2]@href</td>
<td>more_link2</td>
</tr>
<tr>
<td>open</td>
<td>${more_link2}</td>
<td></td>
</tr>
<tr>
<td>store</td>
<td>1</td>
<td>y</td>
</tr>
<tr>
<td>label</td>
<td>more_start2</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>http://www.gendama.jp/forest/popup_forest
<td></td>
</tr>
<tr>
<td>storeElementPresent</td>
<td>xpath=/html/body/div/div[2]/div/div[1]/p[${y}]/a[2]</td>
<td>more_point2</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${more_point2}==false</td>
<td>the_end2</td>
</tr>
<tr>
<td>storeAttribute</td>
<td>xpath=/html/body/div/div[2]/div/div[1]/p[${y}]/a[2]@href</td>
<td>more_link2</td>
</tr>
<tr>
<td>open</td>
<td>${more_link2}</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>${y}+1</td>
<td>y</td>
</tr>
<tr>
<td>goto</td>
<td>more_start2</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>the_end2</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>


コピペしたら再び「テーブル」タブを開くとほらこんな感じで。
なんか出てきたでしょ。

f:id:yuruihito:20141014164459p:plain

動かしてみる

ここまで出来たらげん玉にFirefoxでログインしていることを確かめてから再生ボタンをクリックしてみてください。
ここです。

f:id:yuruihito:20141014164606p:plain

自動で実行されましたか?ログインしていないと動きませんよ。

げん玉に改修が入ったら動かなくなると思いますけど、今はこれで動くのでもし今後も自動実行させていきたい人はこのコードを参考に運用していってみてください。

保存の方法ですが、左上の「ファイル」に「テストケースに名前を付けて保存」とあるので、好きな場所に好きな名前をつけて保存してください。
次回以降起動する場合は左上の「ファイル」の「テストケースを開く」でさっき保存したファイルを選択すれば呼び出すことができます。

以上です。

ご利用は自己責任でお願いしますね。

こういうツール使うのは本当はダメでしょうから、実際に使うのであれば自己責任でおねがいしますね。まあ、げん玉側も検知するのは難しいでしょうけど....

あとコード汚くてごめんなさい。。。