【Python】Seleniumを用いたInstagramのブラウザ自動操作(事例:ログイン・フォロー解除)

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • Pythonライブラリ「Selenium」の使い方について詳しく知りたい。
  • Instagramをブラウザ上で自動操作する方法が知りたい。
目次

【Python】Selenium(セレニウム)とは

Seleniumとは、Webブラウザを起動し操作自動化を実現できるPythonモジュールです。Seleniumを用いると、例えばブラウザ上のフォーム記入、マウスクリック、ブラウザ画面遷移という操作が自動化可能です。

Seleniumの概要や基礎的なコーディング方法についてはこちらの記事で詳しく解説しています。

【参考】Selenium学習におすすめの教材

Seleniumによるブラウザ操作について詳しく学習したい方向けにおすすめの教材をご紹介します。

【実践】Python×Seleniumでインスタグラムを自動操作

本記事では、Seleniumを活用してインスタグラムをブラウザ上で自動操作する方法について解説します。

具体的に以下の自動操作を例とし、コードを解説していきます。

  • インスタグラムにログインする
  • フォローしているユーザーを確認する
  • フォローしているユーザーをX人解除する

【事前準備】ライブラリの読込・初期設定値の入力

Seleniumのライブラリを読み込むコードおよびインスタグラムアカウントの設定値を指定したコードを記述します。以下のコードを実行しましょう。

from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep


"""
**********************************************************************
【要修正】設定値を編集
**********************************************************************
"""
username    = "YOUR USER NAME"  # ユーザー名
password    = "YOUR PASSWORD"   # パスワード
unfollownum = 4                 # フォロー解除する人数

インスタグラムアカウントにログイン

インスタグラムアカウントにログインするコードです。以下を実行しましょう。

"""
**********************************************************************
インスタグラム Topページ
**********************************************************************
"""
browser = webdriver.Chrome(ChromeDriverManager().install())
url = "https://www.instagram.com"
browser.get(url)
sleep(10)

"""
**********************************************************************
インスタグラム ログイン
**********************************************************************
"""
# ログインフォームの要素取得
loginForm = browser.find_element_by_id("loginForm")

# ユーザー名入力
loginForm.find_element_by_name("username").send_keys(username)

# パスワード
loginForm.find_element_by_name("password").send_keys(password)

# ボタンクリック
btns = browser.find_elements_by_tag_name("button")
for i in btns:
    if i.text == 'Log In' or i.text == 'Log in':
        i.click()
        break
sleep(1)

インスタグラムフォローチェック・フォロー解除

インスタグラムアカウントがフォロー中のユーザー一覧画面を開き、フォロー解除するコードを示します。

以下を実行してみましょう。

"""
**********************************************************************
インスタフォローページ
**********************************************************************
"""
# 画面遷移
browser.get("https://www.instagram.com/{}/following/".format(username))
sleep(8)

# フォローボタン一括取得
following  = browser.find_element_by_class_name("_aano")
followingbtns = following.find_elements_by_class_name("_acan._acap._acat")

# フォロー解除数を定義
if unfollownum > len(followingbtns):
    unfollownum = len(followingbtns)

# フォロー解除
for i in range(unfollownum):
    followingbtns[i].click()
    sleep(1)
    try:
        unfollow = browser.find_element_by_class_name("_a9--._a9-_")
        if unfollow.text == 'Unfollow':
            unfollow.click()
    except:
        pass
    sleep(1)
    
print("{}人フォロー解除完了".format(unfollownum))

【Python】インスタグラム自動ログイン・フォロー解除コード全量

最後に、本記事にて紹介したコードを全量示します。

from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep


"""
**********************************************************************
【要修正】設定値を編集
**********************************************************************
"""
username    = "YOUR USER NAME"  # ユーザー名
password    = "YOUR PASSWORD"   # パスワード
unfollownum = 4                 # フォロー解除する人数

"""
**********************************************************************
インスタグラム Topページ
**********************************************************************
"""
browser = webdriver.Chrome(ChromeDriverManager().install())
url = "https://www.instagram.com"
browser.get(url)
sleep(10)

"""
**********************************************************************
インスタグラム ログイン
**********************************************************************
"""
# ログインフォームの要素取得
loginForm = browser.find_element_by_id("loginForm")

# ユーザー名入力
loginForm.find_element_by_name("username").send_keys(username)

# パスワード
loginForm.find_element_by_name("password").send_keys(password)

# ボタンクリック
btns = browser.find_elements_by_tag_name("button")
for i in btns:
    if i.text == 'Log In' or i.text == 'Log in':
        i.click()
        break
sleep(1)

"""
**********************************************************************
インスタフォローページ
**********************************************************************
"""
# 画面遷移
browser.get("https://www.instagram.com/{}/following/".format(username))
sleep(8)

# フォローボタン一括取得
following  = browser.find_element_by_class_name("_aano")
followingbtns = following.find_elements_by_class_name("_acan._acap._acat")

# フォロー解除数を定義
if unfollownum > len(followingbtns):
    unfollownum = len(followingbtns)

# フォロー解除
for i in range(unfollownum):
    followingbtns[i].click()
    sleep(1)
    try:
        unfollow = browser.find_element_by_class_name("_a9--._a9-_")
        if unfollow.text == 'Unfollow':
            unfollow.click()
    except:
        pass
    sleep(1)
    
print("{}人フォロー解除完了".format(unfollownum))

【参考】インスタグラム・その他SNSの運用効率化

当サイトではSNS運用を効率化するための方法を多数解説しています。

Instagram Graph APIを活用したインスタ運用の自動化

カテゴリ記事名
API利用手順Instagram Graph APIの使い方・認証手順・できること
API利用手順Instagram Graph APIの動作チェック
API利用手順有効期限を長期化したアクセストークン取得
インスタ運用効率化Instagramユーザー情報取得
インスタ運用効率化Instagramに投稿したメディア情報取得
インスタ運用効率化Instagramハッシュタグの検索結果取得
インスタ運用効率化Instagramに写真や動画をアップロード
インスタ運用効率化Instagramメディア・ユーザーインサイト取得

インスタグラム運用代行サービス

「面倒なSNS運用を全て代行してほしい」「質のいいフォロワーを獲得したい」「SNS経由での収益導線を強化したい」という方向けにこちらのサービスもおすすめします。

Twitter運用の効率化

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次