お金の健康

インスタの自動いいねプログラムを使って愛媛県での認知度アップにチャレンジ!

こんにちは、うっちゃんです。

SNSで自分の商品やサービスが広まったら嬉しいと思いませんか?

愛媛で確定拠出年金を広めるために家計屋本舗でセミナーや情報発信を行っています。

確定拠出年金に興味をもつ人は増えてきている実感があります。

しかし、家計屋本舗のセミナーへの参加者は既存客がほとんどです。

新規客の獲得に非常に苦戦しています。

そこで、家計屋本舗の認知度アップのためにインスタの自動いいねを開発したので紹介します。

中小企業ではお店の認知度が低いとどんなコンテンツでも新規客が来ない?

中小企業ではお店の認知度が低いとどんなコンテンツでも新規客が来ない?

SNSやネットで自分の商品やサービスが勝手に売れたら嬉しいですよね?

しかし、新規の獲得に苦戦している方が多いと思います。

その理由はいくつか考えられます。

  • ウェブサイトに魅力がない。
  • お申し込みにスムーズに誘導できていない。
  • 企業の認知度が低く、怪しいと思われて申込みされない。

改善策としては、マーケティングの勉強をしてウェブサイトを改良することと、認知度アップの活動を行うことが挙げられます。

ウェブサイトの改良には時間がかかるので、まずは認知度アップの活動を考えることにしました。

その中でも今回はインスタグラムの自動いいねについて紹介します。

インスタグラムでお店のアカウントをアピールして認知度をアップさせよう!

インスタグラムでお店のアカウントをアピールして認知度をアップさせよう!

私はインスタグラムで情報発信をしています。

しかし、フォロワーは900程度で止まっているのが現状です。

まずはこのインスタグラムのアカウントをPRすることにしました。

具体的には愛媛に関するハッシュタグがついた投稿にいいねして、アカウントの存在をアピールします。

インスタグラムでは投稿にハッシュタグ(#)をつけると、投稿が検索にヒットするようになります。

例えば投稿の「#愛媛」と本文に書くと、検索機能で「愛媛」と検索した人に見つけられやすくなります。

逆に、「#愛媛」をハッシュタグ検索すると愛媛に関する投稿が見られるわけです。

投稿にいいねをするとアカウント名が表示されるので、こちらの存在をアピールできます。

ただ、1日に100件いいねをするのは大変ですよね。

そこで、プログラミング言語Pythonでインスタの自動いいねプログラムを作成しました。

インスタの自動いいねプログラムを使って愛媛県での認知度アップにチャレンジ!

自動いいねがどんな感じで動くのか、動画にしました↑

プログラミング言語Pythonではブラウザをコントロールする方法があります。

これを使ってインスタグラムにログインし、ハッシュタグ検索をして投稿にいいねするプログラムを作りました。

Pythonを使える環境を構築し、必要なモジュールをインストールすれば誰でも使えます。

Pythonの始め方はこちらの記事をご参照ください。

ブラウザはFirefoxにしています。

私のPCがubuntuであること、chromeなどよりプログラムで操作しやすかったためです。

chromeだと「次の投稿へ」が上手くいかなくて、イライラしちゃいました。。

外部ライブラリはSeleniumをインストールすればOKです。

あと、geckodriverをダウンロードして、プログラムファイルと同じフォルダに保存します。

geckodriverの詳細な設定方法はこちらをご覧ください。

自動いいねのpythonコードは以下に示します。

#必要なライブラリのインポート
from selenium import webdriver #webページを操作するライブラリのインポート
from selenium.common.exceptions import WebDriverException #例外クラスのインポート
from selenium.webdriver.common.keys import Keys #特殊なキークラスのインポート
from selenium.webdriver.common.action_chains import ActionChains 
from time import sleep #休憩
import random #乱数作成

def login(user, psw):
    driver.get('https://www.instagram.com/?hl=ja') #instagramのサイトにアクセスする
    sleep(1)
    
    driver.find_element_by_name('username').send_keys(user) #メールアドレスを記入
    sleep(1)
    driver.find_element_by_name('password').send_keys(psw) #パスワードを記入
    sleep(1)
    #ログインボタンを押す 
    driver.find_element_by_class_name('L3NKy       ').click() #ログインボタンを押す
    print(user+'にログインしました。')
    sleep(random.randint(2, 5)) #2〜5秒停止
    

def tagsearch(tag):
    instaurl = 'https://www.instagram.com/explore/tags/' #タグ検索用のリンク
    driver.get(instaurl + tag) #タグを検索
    print(tag+'のタグで検索しました。')
    sleep(random.randint(2, 10)) #2〜10秒停止


def clicknice():
    target = driver.find_elements_by_class_name('_9AhH0')[10] #_9AhH0というCSSタグをもつデータをリスト型で取得し、10番目を選択する
    #10番目が新着の1番最初にくる
    actions = ActionChains(driver) #ActionChainsクラスのコンストラクタの引数に、対象driverを指定してインスタンスを作成
    actions.key_down(Keys.CONTROL) #キーボードを押下した状態のままにする「key_down」
    #Controlキーを押下しながら移動→表示件数の最下層まで移動する
    actions.perform() #最後に「perform」を実行することで、これまでのメソッドをビルドした後、実行していきます。
    sleep(1)
    
    try:
        driver.find_elements_by_class_name('_9AhH0')[9].click() #_9AhH0というCSSタグをもつデータをリスト型で取得し、9番目を選択する
        #9番目は人気投稿の最後
        sleep(random.randint(2, 10)) #2〜10秒停止
        driver.find_element_by_class_name('fr66n').click() #fr66nというCSSタグをもつデータを選択し、クリックする
        #fr66nはいいねボタン
        print('いいねしました。')
        sleep(1)

    except WebDriverException:
        print('エラーが発生しました。')
        return
    
    for i in range(random.randint(70, 100)): #70〜100回繰り返す
        try:
            driver.find_element_by_class_name('coreSpriteRightPaginationArrow').click() 
            #coreSpriteRightPaginationArrowというCSSタグをもつデータを選択し、クリックする
            # _65Bje  coreSpriteRightPaginationArrowが次の投稿に移る。
            sleep(random.randint(random.randint(2, 5), random.randint(10, 15))) #2〜5秒から10〜15秒の間停止する

        except WebDriverException:
            print('エラーが発生しました。')
            sleep(5)

        try:
            driver.find_element_by_class_name('fr66n').click()
            #fr66nはいいねボタン
            print('いいねしました。')
            sleep(2)
        except WebDriverException:
            print('エラーが発生しました。')

if __name__ == '__main__':
    #いいねする投稿のタグ
    taglist = ['愛媛ランチ', '愛媛グルメ','愛媛カフェ', '愛媛県','愛媛県松山市', '愛媛ママ', '鯛めし','えひめ','愛媛', '松山市', '今治','今治カフェ', '今治タオル', '今治市', '伊予市','東温市','みきゃん']

#リスト型にすれば、複数のアカウントでも自動いいねできる    
users = ['XXXacountXXX'] #アカウント名
psws = ['YYYpasswordYYY'] #パスワード
    
for user,psw in zip(users,psws):
    driver = webdriver.Firefox() #Firefoxを操作する
    sleep(1) 
    login(user, psw) #関数loginを呼び出す
        
    tagsearch(random.choice(taglist)) #関数tagsearchを呼び出す
    clicknice() #関数clickniceを呼び出す
        
    driver.close() #ブラウザを閉じる
    sleep(5)

GitHubからも入手できます。

ただ、上記の方法だとブラウザが起動するため、PC操作に支障が出ます。

動作速度も遅くなるでしょう。

そこで、headlessモードといって、ブラウザを起動せずに自動いいねする方法もあります。

headlessモードで自動いいねしたときの様子↑

使用したコードはこちらです。

#必要なライブラリをインポートする
from selenium import webdriver #webページを操作するライブラリのインポート
from selenium.common.exceptions import WebDriverException #例外クラスのインポート
from selenium.webdriver.common.keys import Keys #特殊なキークラスのインポート
from selenium.webdriver.common.action_chains import ActionChains 
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from time import sleep #休憩
import random #乱数作成

def login(user, psw):
    driver.get('https://www.instagram.com/?hl=ja') #instagramのサイトにアクセスする
    sleep(1)
    
    driver.find_element_by_name('username').send_keys(user) #メールアドレスを記入
    sleep(1)
    driver.find_element_by_name('password').send_keys(psw) #パスワードを記入
    sleep(1)
     #ログインボタンを押す 
    driver.find_element_by_class_name('L3NKy       ').click() #ログインボタンを押す
    sleep(random.randint(2, 5)) #2〜5秒停止
    print(user+'にログインしました。')
    sleep(1)
    
def tagsearch(tag):
    instaurl = 'https://www.instagram.com/explore/tags/' #タグ検索用のリンク
    driver.get(instaurl + tag) #タグを検索
    sleep(random.randint(2, 10)) #2〜10秒停止
    print(tag+'のタグで検索しました。')
    sleep(1)

def clicknice():
    
    target = driver.find_elements_by_class_name('_9AhH0')[10] #_9AhH0というCSSタグをもつデータをリスト型で取得し、10番目を選択する
    #10番目が新着の1番最初にくる
    actions = ActionChains(driver) #ActionChainsクラスのコンストラクタの引数に、対象driverを指定してインスタンスを作成
    actions.key_down(Keys.CONTROL) #キーボードを押下した状態のままにする「key_down」
    #Controlキーを押下しながら移動→表示件数の最下層まで移動する
    actions.perform() #最後に「perform」を実行することで、これまでのメソッドをビルドした後、実行していきます。
    print('投稿を表示しました。')
    sleep(1)
    
    try:
        driver.find_elements_by_class_name('_9AhH0')[9].click() #_9AhH0というCSSタグをもつデータをリスト型で取得し、9番目を選択する
        #9番目は人気投稿の最後
        sleep(random.randint(2, 10)) #2〜10秒停止
        
        driver.find_element_by_class_name('fr66n').click() #fr66nというCSSタグをもつデータを選択し、クリックする
        #fr66nはいいねボタン
        print('いいねしました。')
        sleep(1)

    except WebDriverException:
        print('エラーが発生しました。')
        return
    
    for i in range(random.randint(70, 100)): #70〜100回繰り返す
        try:
            driver.find_element_by_class_name('coreSpriteRightPaginationArrow').click() 
            #coreSpriteRightPaginationArrowというCSSタグをもつデータを選択し、クリックする
            # _65Bje  coreSpriteRightPaginationArrowが次の投稿に移る。
            sleep(random.randint(random.randint(2, 5), random.randint(10, 15))) #2〜5秒から10〜15秒の間停止する

        except WebDriverException:
            print('エラーが発生しました。')
            sleep(5)

        try:
            driver.find_element_by_class_name('fr66n').click()
            #fr66nはいいねボタン
            print('いいねしました。')
            sleep(2)
        except WebDriverException:
            print('エラーが発生しました。')

if __name__ == '__main__':

    taglist = ['愛媛ランチ', '愛媛グルメ','愛媛カフェ', '愛媛県','愛媛県松山市', '愛媛ママ', '鯛めし','えひめ','愛媛', '松山市','伊予市','東温市','みきゃん']
    
users = ['XXXacountXXX'] #アカウント名
psws = ['YYYpasswordYYY'] #パスワード
    
options = Options()
options.binary_location = '/usr/bin/firefox'
options.add_argument('-headless')
    
for user,psw in zip(users,psws):
    driver = webdriver.Firefox(options=options) #Firefoxを操作する
    sleep(1) 
    login(user, psw) #関数loginを呼び出す
        
    tagsearch(random.choice(taglist)) #関数tagsearchを呼び出す
    clicknice() #関数clickniceを呼び出す
        
    driver.close() #ブラウザを閉じる
    print('ログアウトしました。')
    sleep(5)

こちらもGitHubから入手いただけます。

また、プログラムを少し作り変えると、投稿に紐付けられた場所の情報から投稿を検索して、いいねするプログラムも作れます。

ちなみに、職場ではwindowsのPCを使用しています。

windowsならbatファイルを作成すると、ダブルクリックだけでプログラムが起動して便利です。

さらにタスクスケジューラーに追加すると、定期的にプログラムを自動で起動することも可能です。

batファイルの作り方はこちらの記事がわかりやすかったのでおすすめです。

(参考:batファイルの作り方は?

タスクスケジューラーへの追加方法はこちらを参照ください。

(参考:タスクスケジューラーへの設定方法は?

ただ、頻繁にPCとスマホでログインしていたらアカウントが1日入れなくなり、焦った経験があります。。

ご使用時はあくまで自己責任でお願いします。

さて、便利そうな自動いいねプログラムですが、欠点はないのでしょうか?

インスタの自動いいねプログラムを使う上での欠点とは

愛媛でインスタの自動いいねプログラムを使う上での欠点とは

自動いいねプログラムの欠点は、ハッシュタグのついた投稿、もしくは場所情報がついた投稿にしかいいねができないことです。

一般ユーザーの多くはハッシュタグや場所情報を投稿につけません。

これらをつけているのはだいたい事業者、お店などです。

一般ユーザーに存在をアピールするには魅力的な投稿をするか、手動でいいねするか、SNS広告を出す必要があります。

また、お店アカウントよりも個人アカウントの方がプロフィールを見てもらえたり、いいね返しやフォローされたりすることが多いようにも感じます。

お店だと「営業かな」と思われるのでしょうね。。

私も自動いいねをしつつ、コメントなどをすると効果的にフォロワーを増やし、仲良くなればお店に来てもらえるかと期待しています。

6月からほぼ毎日70〜100いいねする予定なので、効果があればまた報告しますね。

ここまで読んでくださりありがとうございました。

pythonで家計簿の処理を自動化した記事はこちら

pythonで投資の分析方法を紹介した記事はこちら

-お金の健康