【Python】Seleniumでインスタグラムにログインを自動化するサンプルコード


必要なもの


Instagramへ自動ログインするために必要なモノは、以下。

  • Instagramアカウント情報(ログインID、パスワード)

  • Pythonの実行環境(Anacondaだとベスト)


実行手順


SeleniumとWebDriver-Managerを用いることで、Pythonで簡単にインスタグラムにログインすることができます。

  1. 必要なライブラリのインストール

まずは、必要なライブラリをコマンドラインからインストールしましょう。

pip install selenium
pip install webdriver-manager

2.ブラウザを起動する

Seleniumを使ってブラウザを起動します。今回はChromeを使用します。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time

# ドライバーを設定する
driver = webdriver.Chrome(ChromeDriverManager().install())

3.インスタグラムのログインページに移動する

driver.get()を使って、インスタグラムのログインページに移動します。

driver.get("https://www.instagram.com/accounts/login/")


ここでページのHTMLが読み込まれるまでtime.sleepで一定時間プログラムを待機させます。今回はとりあえず10秒としていますが、ブラウザがHTMLを読み込むまでの時間はPCのスペックや通信環境に依存するのでそれ次第で前後します

time.sleep(10)


4.ログイン情報を入力する

ログイン情報を入力します。以下のコードでは、ユーザー名とパスワードを変数に格納しています。

# ログイン時のユーザー名とパスワード
username = "your_username"
password = "your_password"

# ユーザーID入力欄のXPATH
userid_Xpath = '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/div/div/div[1]/div[2]/form/div/div[1]/div/label/input'
# パスワード入力欄のXPATH
pass_Xpath = '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/div/div/div[1]/div[2]/form/div/div[2]/div/label/input'
# ログインボタンのXPATH
button_Xpath = '/html/body/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div[2]/section/main/div/div[1]/div/div[2]/div[3]/div[1]/div[1]/span[1]/button'


# ユーザー名とパスワードを入力してボタンをクリックしてログインする
driver.find_element(By.XPATH, userid_Xpath).send_keys(user_id)
driver.find_element(By.XPATH, pass_Xpath).send_keys(pass_)
driver.find_element(By.XPATH, button_Xpath).click()

5.ログインしたか確認する

ログインが成功したか確認するために、ログイン後のページのタイトルを呼び出してみましょう。

print(driver.title) # 「Instagram」 となっていれば成功「ログイン Instagram」となっていれば失敗 


まとめ


上記の手順をひとまとめにすると以下のようになります。

# ライブラリの読み込み
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time

# ドライバーを設定する
driver = webdriver.Chrome(ChromeDriverManager().install())

# ログイン画面にアクセスする
driver.get("https://www.instagram.com/accounts/login/")

# HTMLを読み込むまで待機する
time.sleep(10)

# ログイン時のユーザー名とパスワード
username = "your_username"
password = "your_password"

# ユーザーID入力欄のXPATH
userid_Xpath = '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/div/div/div[1]/div[2]/form/div/div[1]/div/label/input'
# パスワード入力欄のXPATH
pass_Xpath = '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/div/div/div[1]/div[2]/form/div/div[2]/div/label/input'
# ログインボタンのXPATH
button_Xpath = '/html/body/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div[2]/section/main/div/div[1]/div/div[2]/div[3]/div[1]/div[1]/span[1]/button'

# ユーザー名とパスワードを入力してボタンをクリックしてログインする
driver.find_element(By.XPATH, userid_Xpath).send_keys(user_id)
driver.find_element(By.XPATH, pass_Xpath).send_keys(pass_)
driver.find_element(By.XPATH, button_Xpath).click()

# 現在のページを確認する
print(driver.title, driver.current_url)


以上がPythonでSeleniumとWebDriver-Managerを用いてインスタグラムにログインする方法についての解説です。

SeleniumとWebDriver-Managerを使って自動化することで手動でのログイン作業などを簡易化することができます。


いいなと思ったら応援しよう!