こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- Pythonライブラリ「Selenium」の使い方について詳しく知りたい。
- Instagramをブラウザ上で自動操作する方法が知りたい。
【Python】Selenium(セレニウム)とは
Seleniumとは、Webブラウザを起動し操作自動化を実現できるPythonモジュールです。Seleniumを用いると、例えばブラウザ上のフォーム記入、マウスクリック、ブラウザ画面遷移という操作が自動化可能です。
Seleniumの概要や基礎的なコーディング方法についてはこちらの記事で詳しく解説しています。
【Python】Seleniumとは?Webブラウザ操作の自動化方法を徹底解説
PythonでWebブラウザの自動操作を実現したい方向けに「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運用の効率化
Twitter運用を自動化する方法
- Twitter検索結果に基づくデータ収集・分析
- 定期的に自動ツイートする方法
- 自動でファボ(いいね)やリツイートする方法
- 自動でフォロー・ブロック・ミュートする方法
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら