Python

【完全版】自動いいねでInstagramのフォロワーを増やそう!(Python / Serenium)

はじめに

前回の記事では、最新投稿への自動いいねのソースコードを紹介しました。
本記事では、いいね処理を繰り返し実行して完全にいいね処理を自動化する仕組みを紹介していきます

Instagramのいいねの効果

簡潔にいうと、フォロワーを増やすこと が見込めるようです。

その理由は、いいねされた時の行動を振り返ってみるとイメージしやすいです。
まず、いいね することで いいね された側(ユーザー)には通知が届きます。
ユーザーがその通知を見て、プロフィールに飛んでくることで、過去投稿の確認やストーリーの確認がフォローをする動作に繋がっているため、いいね周りはフォロワーを増やすために効果的な活動になっているようです。

  1. いいねをする

    自分)フォロワーになって欲しいユーザーにアクションする。

  2. ユーザーがあなたに気づく

    相手)いいねされたユーザーは自分のことを知り、プロフィールを確認する。

  3. フォローされる

    相手)自分のプロフィールを見たユーザーが、フォローしてくれる。

Instagramの利用規約の確認

自動いいねを作るにあたってinstagramの利用規約を確認したところ、、、

不正な方法を用いて、アカウントの作成、情報へのアクセス、または情報の取得を試みることは禁止されています。
これには、弊社から明示的な許可を得ることなく、自動化された手段を用いてアカウントを作成したり、情報を取得したりする行為が含まれます。

許可なくアカウントの作成、情報の取得を自動化しないことが規約に記載されていたので今回の自動いいね操作自体は該当しなそうですね。

では、実際にいいね操作の自動化について紹介していきます。

動作検証環境

今回の動作検証環境は以下の通りです。

作業エディタ:VSCode
OS:MacOS 11.5
Pythonバージョン:Python3.9.5
WebDriverバージョン:92.0.4515 (*)
Chromeバージョン:92.0.4515 (*)
※(*):ソース内で最新バージョンを取得するため気にせずOK!

前回の記事

instagram_いいね
【フォロワーを増やそう!】instagramのいいね操作を自動化してみた(Python / Serenium)自動化しようと思った背景 知り合いがインスタ運用をしており、毎日いいね周りといって空き時間にポチポチしていたので、これは自動化した方が...

Instagram 自動いいねツール作成

今回は、前回の振り返りから繰り返し処理まで2ステップで紹介していきます。

  1. 前回の振り返り
  2. いいねの繰り返し処理

利用する設定値

本記事で利用した主な設定値は下記の5つになります。
処理ステップ内に記載があった場合は、事前に設定しておく値だとご認識下さい。

URL = "https://www.instagram.com"
LOGIN_ID = '*****'
PASSWORD = '*****'
KEYWORD_TAG = '〇〇好きな人と繋がりたい'
REPEATE_COUNT = 50

本記事ではサンプルコードを記載しておりますが、ご利用される場合は、当サイトでは一切の責任を負いかねますので、ご理解の上、ご活用ください。

前回の振り返り

前回は下記5ステップをご紹介したと思います。
本記事でもそのまま利用していきますので復習に活用ください。

Step1. webブラウザを起動
Step2. Instagramにアクセス
Step3. ログイン処理
Step4. タグ検索処理
Step5. いいね操作処理

サンプルコード

instagramの要素が変わることで正常に動かなくなる可能性がありますので、うまく動かない場合は、自身で要素を確認の上修正ください。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys

# ログイン処理
def function_login() :
    # 電話、メールまたはユーザー名のinput要素が読み込まれるまで待機(最大10秒)
    elem_user_id_input = WebDriverWait(browser, 10).until(
        EC.visibility_of_element_located((By.NAME, "username")))
    # パスワードのinput要素
    elem_password_input = browser.find_element_by_name("password")

    if elem_user_id_input and elem_password_input :
        # ログインID入力
        elem_user_id_input.send_keys(LOGIN_ID)
        # パスワード入力
        elem_password_input.send_keys(PASSWORD)
        # ログインボタンクリック
        elem_login_btn = WebDriverWait(browser, 10).until(
            EC.visibility_of_element_located((By.XPATH, '//*[@id="loginForm"]/div/div[3]/button')))

        # ボタン押下のアクション
        actions = ActionChains(browser)
        actions.move_to_element(elem_login_btn)
        actions.click(elem_login_btn)
        actions.perform()

        # ログイン処理待機(適当)
        sleep(5)

        # 遷移後のURLでログイン可否をチェック
        print(now_time() + 'instagramにログインしました')
        return True
    else :
        print(now_time() + 'ログインに失敗しました')
        False

# 任意のタグ検索を実施
def function_search(keyword_tag) :
    browser.get(URL + '/explore/tags/' + keyword_tag)
    print(now_time() + keyword_tag + ' でタグ検索しました')
    sleep(3)

# いいね処理
def function_niceClick() :
    # 最新の投稿を開く
    elem_first_target = WebDriverWait(browser, 30).until(
        EC.visibility_of_all_elements_located((By.CLASS_NAME, 'KL4Bh')))[9]
    actions = ActionChains(browser)
    actions.move_to_element(elem_first_target)
    actions.click(elem_first_target)
    actions.perform()
    sleep(2)

    # いいねをしてない場合のみ、いいねをクリック
    elem_target_nice_text = browser.find_elements_by_class_name('_8-yf5')
    for e in elem_target_nice_text:
        if (e.get_attribute('aria-label') != 'いいね!') :
            continue
        else :
            browser.find_element_by_class_name('fr66n').click()
    sleep(2)

# 設定値
URL = "https://www.instagram.com"
LOGIN_ID = '*****'
PASSWORD = '*****'
KEYWORD_TAG = '〇〇好きな人と繋がりたい'

# 実行処理
# Step1. webブラウザを起動
browser = webdriver.Chrome(ChromeDriverManager().install())
# Step2. Instagramにアクセス
browser.get(URL + '/accounts/login/')
# Step3. ログイン処理
function_login()
# Step4. タグ検索処理
function_search(KEYWORD_TAG)
# Step5. いいね操作処理
function_niceClick()

いいねの繰り返し処理

最新の投稿に対していいねしていた部分だけ繰り返し実行にすればよいので、下記操作イメージでソースコードを修正していきます。

  1. 最新の投稿を開き、いいねする
  2. 次の投稿を開く
  3. いいねする
  4. 2〜3をN回繰り返す
# いいね処理(任意の回数繰り返す)
def function_niceClick() :
    try :
        # 最新の投稿を開く
        elem_first_target = WebDriverWait(browser, 30).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, 'KL4Bh')))[9]
        actions = ActionChains(browser)
        actions.move_to_element(elem_first_target)
        actions.click(elem_first_target)
        actions.perform()
        sleep(2)

        # 繰り返し処理
        for i in range(REPEATE_COUNT):
            # いいねクリック
            elem_target_nice_text = browser.find_elements_by_class_name('_8-yf5')
            for e in elem_target_nice_text:
                if (e.get_attribute('aria-label') != 'いいね!') :
                    continue
                else :
                    elem_target = browser.find_element_by_class_name('fr66n').click()
                    break
            sleep(2)

            # 次の投稿
            elem_next_btn = browser.find_element_by_class_name('l8mY4').click()
            sleep(2)
        print(now_time() + 'いいね処理を' + str(REPEATE_COUNT) + '回実行しました')

    except :
        print(now_time() + 'いいね処理にてエラーが発生したため強制終了します')

動作確認

いかがだったでしょうか?うまく動けばこれを朝、昼、夜に3回程度運用して行けば、少しずつフォロワーが増えてくると思います。
(実績としては、1ヶ月運用で約300人増えました!!)

instagram_自動いいね実行結果

参考サイト

instagram_いいね
【フォロワーを増やそう!】instagramのいいね操作を自動化してみた(Python / Serenium)自動化しようと思った背景 知り合いがインスタ運用をしており、毎日いいね周りといって空き時間にポチポチしていたので、これは自動化した方が...

まとめ

本記事では、Instagramの最新投稿を開き、任意の繰り返し回数 いいね するまでをソースコードと合わせて紹介しました。知り合いの運用実績としても1ヶ月で300人増やすことができたので、皆さんもぜひ活用いただきフォロワーを少しずつ増やして行けたらいいですね!




ABOUT ME
lusk
EC歴3年、23歳。 通販カート会社に2018年新卒で入社し、エンジニア、プロジェクトマネージャー、新規事業の立ち上げを経験。 仕事を楽しくするためのツール作成や業務改善の仕組みを作ったりしてます。