よく友達にいたずらでLINEスタンプを大量送信したいことがありますよね!
でも手でやると疲れるし、そんなに大量には送れないです。
この記事はでPythonを使って、大量にスタンプを送信する方法を解説します。ただし悪用は厳禁です!!
pyautoguiをインストール
pyautoguiはマウスやキーボードの操作をPythonで行うためのパッケージです。これを使って、LINEのスタンプにマウスカーソルが存在する状態で、大量にクリックすることで大量のスタンプを送信します。
私はpipを使っているので、以下のコマンドでインストールします。pip以外のパッケージ管理ソフトを使っている場合は読み替えてください。
$ pip install pyautogui
プログラム作成
先ほどインストールしたパッケージを使って、スタンプ大量送信プログラムを書いてみます。
import sys
import time
import pyautogui
'''
n回クリックする
'''
def click_n_times(n):
for _ in range(n):
pyautogui.click()
if __name__ == '__main__':
args = sys.argv
if len(args) == 1:
print('スタンプ送信回数を入力してください。')
sys.exit(0)
if not args[1].isdigit():
print('スタンプ送信回数は整数を入力してください')
sys.exit(0)
time.sleep(5)
click_n_times(int(args[1]))
プログラムの概要を説明します。プログラム実行時に、クリック回数をコマンドライン引数として渡すとその回数だけクリックするというプログラムです。例えば10回クリックしたい場合は次のようにします。
$ python main.py 10
プログラムの中身を説明します。
1~4行目で必要なパッケージをインポートして、プログラムで使えるようにしています。
import sys
import time
import pyautogui
9~11行目で、n回クリックする関数を定義しています。
引数として、nを受け取り、for文でn回繰り返し処理を行います。for文の中でpyautoguiのclick関数を呼ぶことで、n回クリックさせることが出来ます。
def click_n_times(n):
for _ in range(n):
pyautogui.click()
14行目で、コマンドライン引数を受け取り、16~18行目で繰り返し回数のコマンドライン引数が渡されているかチェックし、20~22行目で、繰り返し回数の引数が0以上の整数かどうかチェックしています。チェックに引っかかった場合は、sys.exit(0)でその時点でプログラムを抜けるようにしています。
args = sys.argv
if len(args) == 1:
print('スタンプ送信回数を入力してください。')
sys.exit(0)
if not args[1].isdigit():
print('スタンプ送信回数は整数を入力してください')
sys.exit(0)
24~25行目で、プログラム実行後に5秒スリープし、click_n_timesにコマンドライン引数を渡してその回数だけクリックを実行します。
5秒スリープする理由は、プログラム実行後にLINEでスタンプの画面を表示し、送りたいスタンプにカーソルを持っていくための時間を確保するためです。ここの値は適宜調整するともう少し使いやすくなります。
time.sleep(5)
click_n_times(int(args[1]))
実行してみる
実行するには少しコツが必要です。プログラムを実行してから5秒後にクリックが実行されるので、実行後に心の中で、「0、1、…」と数えながら、5秒経過するまでに、LINEのスタンプにカーソルを持っていく必要があります。
LINE Payの公式アカウントのに10個だけスタンプを送ってみます。あまりにも大量に送るとサーバーに負荷をかけることになるかもしれないので、気を付ける必要があります。
以下で、実行します。(ファイル名は適宜読み替えてください)
python main.py 10
こちらが実行結果の映像キャプチャです。期待した通りスタンプを送れていますね。