この自動クリックツールは、クラウドワークスで記事やアンケートなどを募集した時のありがとうボタンを自動(一括)で押すことができます。
筆者が以前、100件単位の依頼を複数募集した時に手動で処理すると、さすがに時間がもったいないと思いこのツールを作りました。
使ったソフトは、ブラウザ作業を全て自動化でできるiMacros(無料)です。
ノーノちゃん
テイくん
このページの目次
1. 必ず最初にお読みください
クラウドワークスの「ありがとうボタン」を自動でクリックするツールです。
何百件あってもワンクリックですべてOKです。
※ちなみに1日に押す回数上限はありませんが、1人の方に対して1日1回までです。
そうなった場合は、ご自分で修正されるかお問い合わせフォームから不具合報告をお願いします。
2. ありがとうボタンを押すメリット
そもそもありがとうボタンを押すメリットは?と思う方が多いのではないでしょうか。
クラウドワーカー(仕事を受ける側)の方は、ありがとうボタンについて以下のように考えているようです。
クラウドソーシングで探すときは、facebook の「いいね!」に該当する何らかのアレ(クラウドワークスだと「ありがとう」ボタン)の数を参考にするとハズレがないです。3桁〜4桁であれば手堅い発注元という感じですね
— 小向孝太郎 (@ktrkmk) April 5, 2018
クラウドワークスにある「ありがとう」機能。
案件終わるごとにクライアントへありがとう連絡してると、印象もよくなるよ!🤗
自分もクライアントからありがとうボタン押されるの嬉しいよね❓
(たぶん)クライアントと仲良くなれる方法としても使えるよー❗️
— よしふみ※海外ノマド一時休止 (@4taku1116) May 9, 2019
続いて筆者が会社で所有している2つのアカウントを見て頂ければと思います。
※2つのアカウントの画像を貼り付けていますが、法人アカウントの場合を除き複数アカウントを作成する行為は禁止されています。
第19条 禁止事項
(5) 一人の利用者が複数のメールアドレス等を登録して重複して会員登録を行う行為。
参照元:クラウドワークス利用規約(第19条 禁止事項)
検証のために上記の2つのアカウントで同じような案件(プロジェクト)を募集したことがあります。
案件の内容によって変わると思いますが、ありがとうの数と評価実績が多いアカウントの方が約2倍の募集が集まりました。
※あくまでも一つの例です。
もちろんありがとうの数より高い評価数が重要ですが、ありがとうの数がほとんどないより多いほうが応募が埋まりやすい可能性があります。
ノーノちゃん
テイくん
3. 動作環境について
ツールを使うためにソフトをダウンロード(追加)する必要があります。
- iMacros 旧バージョン(8.9.7)
最新版はJavaScriptが使用できないので旧バージョンが必要です。詳しく知りたい方は「iMacros:無料版と有料版の違いを解説」でご確認ください。 - Firefox 52.9.0ESR
上記の導入方法はこちらで説明しています(設定時間は約5分)
iMacrosに必要なFirefox、SmoothCSVの導入方法と初期設定(保存版)【PART.1】
4. 更新履歴
修正や機能追加はこちらに記載しています。
- Version情報をプログラムTOPに記載
- プログラムの簡略化(iimSet廃止)
- ユーザーが任意の数でありがとうボタンを押せるように変更(JavaScript追加)
5. マクロの設置方法
マクロの中身を貼り付けた後、ファイル名「cw-thanks.js」に変更するだけで動きます。
※マクロの中身は次の項目にあります。
マクロ設置がはじめての方はこちらからどうぞ
【超初心者向け】2通りのマクロ設置方法を解説
6. マクロの中身
/*
Macro Name: cw-thanks.js
Macro URL: https://teilab.net/imacros-thanks-button/
Author: teilab(テイくん)
Version: 1.2
*/
// -------------------------------------------------
// 任意の数のありがとうボタンを押せるようにする処理
// -------------------------------------------------
var num = prompt("ありがとうボタンを押したい数を入力してください!\n\n");
if (num == null){ // 何も入ってない空の状態(キャンセルを押した場合)
iimClose();
} else if (num == ""){ // 値がない場合
alert("数値は必須事項です!");
iimClose();
} else if (isNaN(num) || !(num >= 1 && num <= 9999)){ // 数字(1~9999)以外の場合
alert("1~9999までの数値(半角)を入力してください!");
iimClose();
}
// -------------------------------------------------
// 繰り返し処理開始
// -------------------------------------------------
for (var outLoop = 0; ; outLoop++){
for (var inLoop = 1; ; inLoop++){
// -------------------------------------------------
// ありがとうボタンがあるかチェック【macroCheck】
// -------------------------------------------------
var macroCheck = "CODE:";
macroCheck += "SET !REPLAYSPEED FAST" + "\n";
macroCheck += "SET !ERRORIGNORE YES" + "\n";
macroCheck += "SET !TIMEOUT_STEP 0" + "\n";
//ありがとうボタンを押すか判定 ※重要
macroCheck += "TAG POS="+inLoop+" TYPE=DIV ATTR=CLASS:username EXTRACT=TXT" + "\n";
iimPlay(macroCheck);
var check = iimGetExtract(1); //iimデータはjsで使えないため変数checkに渡す
if (inLoop === 21){
// -------------------------------------------------
// 次のページに移動【macroNext】
// -------------------------------------------------
var macroNext = "CODE:";
macroNext += "SET !REPLAYSPEED FAST" + "\n";
macroNext += "SET !ERRORIGNORE YES" + "\n";
macroNext += "SET !TIMEOUT_STEP 1" + "\n";
macroNext += "TAG POS=1 TYPE=A ATTR=REL:next*" + "\n";
macroNext += "WAIT SECONDS=1"+ "\n";
iimPlay(macroNext);
break; //inLoopを抜ける
} else if (outLoop * 20 + inLoop > num || check === "#EANF#"){
// -------------------------------------------------
// 入力した数のありがとうボタンを全て押した or 押すボタンがない場合【macroEnd】
// -------------------------------------------------
var macroEnd = "CODE:";
macroEnd += "PROMPT 全てのありがとうボタンを押しました。<SP>" + "\n";
iimPlay(macroEnd);
iimClose();
} else {
// -------------------------------------------------
// ありがとうボタン押す【macrothanks】
// -------------------------------------------------
var macrothanks = "CODE:";
macrothanks += "SET !REPLAYSPEED FAST" + "\n";
macrothanks += "SET !ERRORIGNORE YES" + "\n";
macrothanks += "SET !TIMEOUT_STEP 0" + "\n"; //遅延対策
macrothanks += "EVENT TYPE=CLICK XPATH=//tr["+inLoop+"]/td[2]/div[2]/div[3]/div/div[1] BUTTON=0" + "\n"; //通常用
macrothanks += "EVENT TYPE=CLICK XPATH=//tr["+inLoop+"]/td[2]/div[2]/div[4]/div/div[1] BUTTON=0" + "\n"; //PROCW用
iimPlay(macrothanks);
}
}
}
iMacrosを1から勉強してみたい方や初心者の方はこちら
ブラウザ上の作業を全て自動化できるiMacrosとは?【PART.0】
// -------------------------------------------------
// 繰り返し処理開始
// -------------------------------------------------
for (var outLoop = 0; ; outLoop++){
for (var inLoop = 1; ; inLoop++){
多重ループ(for文の中にfor文)にさせている理由は、1~21回までカウントさせた後【macroNext】内のbreakで再度1からカウントさせるためです。
ループだけで作るとbreakした時点でマクロが終了してしまいます。
// -------------------------------------------------
// ありがとうボタンがあるかチェック【macroCheck】
// -------------------------------------------------
var macroCheck = "CODE:";
macroCheck += "SET !REPLAYSPEED FAST" + "\n";
macroCheck += "SET !ERRORIGNORE YES" + "\n";
macroCheck += "SET !TIMEOUT_STEP 0" + "\n";
//ありがとうボタンを押すか判定 ※重要
macroCheck += "TAG POS="+inLoop+" TYPE=DIV ATTR=CLASS:username EXTRACT=TXT" + "\n";
iimPlay(macroCheck);
var check = iimGetExtract(1); //iimデータはjsで使えないため変数checkに渡す
TAG POS={{inLoop}} TYPE=DIV ATTR=CLASS:username EXTRACT=TXTで吸い上げたデータをvar check = iimGetExtract(1)でjsに受け渡します。そしてもしも値が#EANF#ならマクロを終了させます。
補足:#EANF#は抜き出すデータがないという意味です。
} else if (outLoop * 20 + inLoop > num || check === "#EANF#"){
// -------------------------------------------------
// 入力した数のありがとうボタンを全て押した or 押すボタンがない場合【macroEnd】
// -------------------------------------------------
var macroEnd = "CODE:";
macroEnd += "PROMPT 全てのありがとうボタンを押しました。<SP>" + "\n";
iimPlay(macroEnd);
iimClose();
if文の分岐が少し複雑なので例を出して解説します。
outLoop * 20 + inLoopの合計がありがとうボタンを押す数と一致します。
それとif (inLoop === 21)でbreakしますので【macrothanks】で使うinLoopは20までしか使用しません。
1ページ20個のありがとうボタンしかありませんのでこのような作りになります。
各数値は以下のようになります。
処理回数 | ページ数 | outLoop × 20 + inLoop | 合計 | ||
---|---|---|---|---|---|
1 | 1 | 0 | 20 | 1 | 1 |
2 | 1 | 0 | 20 | 2 | 2 |
3 | 1 | 0 | 20 | 3 | 3 |
4 | 1 | 0 | 20 | 4 | 4 |
5 | 1 | 0 | 20 | 5 | 5 |
6 | 1 | 0 | 20 | 6 | 6 |
7 | 1 | 0 | 20 | 7 | 7 |
8 | 1 | 0 | 20 | 8 | 8 |
9 | 1 | 0 | 20 | 9 | 9 |
10 | 1 | 0 | 20 | 10 | 10 |
11 | 1 | 0 | 20 | 11 | 11 |
12 | 1 | 0 | 20 | 12 | 12 |
13 | 1 | 0 | 20 | 13 | 13 |
14 | 1 | 0 | 20 | 14 | 14 |
15 | 1 | 0 | 20 | 15 | 15 |
16 | 1 | 0 | 20 | 16 | 16 |
17 | 1 | 0 | 20 | 17 | 17 |
18 | 1 | 0 | 20 | 18 | 18 |
19 | 1 | 0 | 20 | 19 | 19 |
20 | 1 | 0 | 20 | 20 | 20 |
21 | breakでinLoopを抜ける | ||||
1 | 2 | 1 | 20 | 1 | 21 |
2 | 2 | 1 | 20 | 2 | 22 |
3 | 2 | 1 | 20 | 3 | 23 |
4 | 2 | 1 | 20 | 4 | 24 |
5 | 2 | 1 | 20 | 5 | 25 |
6 | 2 | 1 | 20 | 6 | 26 |
7 | 2 | 1 | 20 | 7 | 27 |
8 | 2 | 1 | 20 | 8 | 28 |
9 | 2 | 1 | 20 | 9 | 29 |
10 | 2 | 1 | 20 | 10 | 30 |
11 | 2 | 1 | 20 | 11 | 31 |
12 | 2 | 1 | 20 | 12 | 32 |
13 | 2 | 1 | 20 | 13 | 33 |
14 | 2 | 1 | 20 | 14 | 34 |
15 | 2 | 1 | 20 | 15 | 35 |
16 | 2 | 1 | 20 | 16 | 36 |
17 | 2 | 1 | 20 | 17 | 37 |
18 | 2 | 1 | 20 | 18 | 38 |
19 | 2 | 1 | 20 | 19 | 39 |
20 | 2 | 1 | 20 | 20 | 40 |
21 | breakでinLoopを抜ける |
ユーザーが入力した値(num)より合計(ありがとうボタンの押した数)が大きくなった場合にマクロが止まります。
} else {
// -------------------------------------------------
// ありがとうボタン押す【macrothanks】
// -------------------------------------------------
var macrothanks = "CODE:";
macrothanks += "SET !REPLAYSPEED FAST" + "\n";
macrothanks += "SET !ERRORIGNORE YES" + "\n";
macrothanks += "SET !TIMEOUT_STEP 0" + "\n"; //遅延対策
macrothanks += "EVENT TYPE=CLICK XPATH=//tr["+inLoop+"]/td[2]/div[2]/div[3]/div/div[1] BUTTON=0" + "\n"; //通常用
macrothanks += "EVENT TYPE=CLICK XPATH=//tr["+inLoop+"]/td[2]/div[2]/div[4]/div/div[1] BUTTON=0" + "\n"; //PROCW用
iimPlay(macrothanks);
通常用とPROCW用(プロクラウドワーカー)のありがとうボタン自体は同じですが、XPATH(位置)が違うため2つ入れています。
もし通常用だけですとPROCWだけありがとうボタンを押さない仕様になってしまいます。
iMacros:コマンド一覧と使い方(大量のサンプルマクロあり)【PART.10】
エディタを導入されていない方はこちらからどうぞ
iMacros×JavaScript:Visual Studio Codeの導入方法と使い方【PART.2】
7. マクロの使い方
※動画は約30秒です。
承認済みでない案件も「ありがとうボタン」を押すことができます。
ただ、もし後で非承認した場合、クラウドワーカーさん(仕事をしてくれる方)があまり気分が良くないと思うので承認済みだけ押すようにします。
※あくまでに筆者の運用方法です。
数を入力してOKを押せば、後は自動でクリックしていきます。
8. よくある質問
これはJavaScriptで作られたプログラムをiMacros(.iim)で処理しようとした場合に表示されるエラーです。
解決方法:ファイル名を「cw_thanks.js」に変更します。
解決方法:画像の通りPlayを押せばOKです。
まずはこちらの記事を参考にして頂ければと思います。
iMacrosの使い方:初心者向けに解説!(図解、動画あり)【PART.2】
9. まとめ
手動では時間が掛かり過ぎて、できなかったことを自動化すると仕事の幅が広がります。
今回のマクロはJavaScriptで書いているため少し難しかった方もいると思います。
実は、「次のページに進む」の処理だけを手動ですればiMacrosだけでも自動化が可能です。
ですので無理にJavaScriptを覚えなくても大丈夫です。
- 自動でありがとうボタンを押せる
- ありがとうの数が多いほど募集が集まりやすい
- 承認済みの案件のみにありがとうを押す
クラウドワークスの他の自動ツールはこちらからどうぞ
【クラウドワークス】3つの無料自動ツールで外注化の効率アップを支援!