151 インスタで好きなインスタグラマーを自動検索!簡単スクリプトで効率化#PyAutoGUI【2024年版】#業務自動化
こんにちは!TechCommitメンバーの友季子です♬
今回は、Instagramの自動化についてまとめてみました。
PyAutoGUIを用いて、Instagramの検索機能を使ってフォローしているインスタグラマーのページに自動で遷移するスクリプトを紹介します。
1. はじめに
1.1 出来ること
PythonとSelenium、PyAutoGUIを組み合わせてInstagramの操作を自動化する方法をご紹介します。特に、ログインから検索、特定のページへの遷移までを自動化するスクリプトを作成しました。このスクリプトを使えば、手動で行う面倒な作業を自動化し、効率化することができます。
1.2 イメージ動画
2. スクリプトの全体の流れ
2.1 初期設定
ブラウザの起動: Seleniumを使用してChromeブラウザを起動し、Instagramのログインページにアクセスします。
2.2 ログインプロセス
ページ読み込み待機: ページが完全に読み込まれるまで少し待機します(time.sleep(5))。
ユーザー名とパスワードの入力:
ユーザー名フィールドを動的に待機して見つけ、ユーザー名を入力します。
パスワードフィールドを動的に待機して見つけ、パスワードを入力します。
ログインボタンのクリック: ログインボタンを動的に待機してクリックします。
「情報を保存」ボタンのクリック: 「情報を保存」というボタンが表示された場合、それをクリックします。
3. 必要な準備
3.1 必要なライブラリのインストール
まず、Pythonの環境が必要です。まだインストールしていない場合は、Python公式サイトからダウンロードしてください。
PyAutoGUIのライブラリをインストール
pip install selenium pyautogui
#PyAutoGUIのライブラリをインストール
3.2 ChromeDriverのダウンロード
SeleniumでChromeブラウザを操作するために、ChromeDriverの設定をなさってください。
▽参考note
4. サンプルコードのご紹介
Instagramにログインし、虫眼鏡アイコンをクリックしてフォローしているインスタグラマーのページに自動で遷移するものです。
※IDとPWはご自身のものを入力してくださいね。
4.1 全体コード
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import pyautogui
# ChromeDriverの自動管理でブラウザを起動
driver = webdriver.Chrome()
driver.get("https://www.instagram.com/?locale=ja_JP")
# Instagramのタイトルを出力
print(driver.title)
# ページが完全に読み込まれるのを待つ
time.sleep(5)
try:
# 1. ユーザー名フィールドの入力(動的待機を追加)
username_field = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="username"]'))
)
username_field.clear()
username_field.send_keys("YOUR_USERNAME") # ここにユーザー名を入力
# 2. パスワードフィールドの入力(動的待機を追加)
password_field = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="password"]'))
)
password_field.clear()
password_field.send_keys("YOUR_PASSWORD") # ここにパスワードを入力
# 3. ログインボタンのクリック(動的待機を追加)
login_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]'))
)
login_button.click()
print("ログインボタンをクリックしました")
# 4. 「情報を保存」というボタンを探してクリック
try:
save_info_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), '情報を保存')]"))
)
save_info_button.click()
print("「情報を保存」をクリックしました")
except Exception as e:
print(f"「情報を保存」ボタンのクリックに失敗しました: {e}")
# ログイン処理の確認のために少し待機
time.sleep(20)
# マウスを左上から少しずらした位置に移動し、ゆっくり下に移動しながらクリック
start_x, start_y = 45, 20 # 左上から少しずれた位置
pyautogui.moveTo(start_x, start_y, duration=1) # 開始位置に移動
# 下に少しずつ移動しながらクリック
for y_offset in range(0, 406, 10): # 406ピクセルまで10ピクセルずつ下に移動
pyautogui.moveTo(start_x, start_y + y_offset)
time.sleep(0.1) # 移動の合間に少し待機
# 最後にクリック
pyautogui.click()
print("8センチ下の位置でクリックしました")
# 最初の30秒待機
time.sleep(30)
# 少し右に移動してクリック
pyautogui.move(200, 0, duration=0.5) # 現在の位置から右に移動
pyautogui.click()
print("少し右の位置でクリックしました")
# 少し下に移動してクリック
pyautogui.move(0, 100, duration=0.5) # 現在の位置から下に移動
pyautogui.click()
print("少し右に移動後、さらに下に移動してクリックしました")
# 最後に30秒間待機
time.sleep(30)
except Exception as e:
print(f"エラーが発生しました: {e}")
finally:
# ブラウザを閉じる
driver.quit()
4.2 解説コード
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import pyautogui
# ChromeDriverの自動管理でブラウザを起動
driver = webdriver.Chrome()
# Instagramのページを開く
driver.get("https://www.instagram.com/?locale=ja_JP")
# Instagramのタイトルを出力
print(driver.title)
# ページが完全に読み込まれるのを待つ
time.sleep(5)
try:
# 1. ユーザー名フィールドの入力(動的待機を追加)
# usernameフィールドが表示されるまで待機し、見つけたらテキストを入力する
username_field = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="username"]'))
)
username_field.clear() # フィールドの内容をクリア
username_field.send_keys("yukiko_smile_1026") # ユーザー名を入力
# 2. パスワードフィールドの入力(動的待機を追加)
# passwordフィールドが表示されるまで待機し、見つけたらパスワードを入力する
password_field = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="password"]'))
)
password_field.clear() # フィールドの内容をクリア
password_field.send_keys("hogehogehoge") # パスワードを入力
# 3. ログインボタンのクリック(動的待機を追加)
# submitタイプのボタンがクリック可能になるまで待機し、見つけたらクリックする
login_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]'))
)
login_button.click() # ログインボタンをクリック
print("ログインボタンをクリックしました")
# 4. 「情報を保存」というボタンを探してクリック
try:
# 情報を保存ボタンがクリック可能になるまで待機し、見つけたらクリックする
save_info_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), '情報を保存')]"))
)
save_info_button.click() # 情報を保存ボタンをクリック
print("「情報を保存」をクリックしました")
except Exception as e:
print(f"「情報を保存」ボタンのクリックに失敗しました: {e}")
# ログイン処理の確認のために少し待機
time.sleep(20)
# マウスを左上から少しずらした位置に移動し、ゆっくり下に移動しながらクリック
start_x, start_y = 45, 20 # 左上から少しずれた位置
pyautogui.moveTo(start_x, start_y, duration=1) # 開始位置に移動
# 下に少しずつ移動しながらクリック
for y_offset in range(0, 406, 10): # 406ピクセルまで10ピクセルずつ下に移動
pyautogui.moveTo(start_x, start_y + y_offset) # マウスを移動
time.sleep(0.1) # 移動の合間に少し待機
# 最後にクリック
pyautogui.click() # クリックを実行
print("8センチ下の位置でクリックしました")
# 最初の30秒待機
time.sleep(30)
# 少し右に移動してクリック
pyautogui.move(200, 0, duration=0.5) # 現在の位置から右に移動
pyautogui.click() # クリックを実行
print("少し右の位置でクリックしました")
# 少し下に移動してクリック
pyautogui.move(0, 100, duration=0.5) # 現在の位置から下に移動
pyautogui.click() # クリックを実行
print("少し右に移動後、さらに下に移動してクリックしました")
# 最後に30秒間待機
time.sleep(30)
except Exception as e:
print(f"エラーが発生しました: {e}")
finally:
# ブラウザを閉じる
driver.quit() # ブラウザを閉じて終了
4.3 実行方法
上記のスクリプトをコピーして、Pythonファイル(例: instagram_bot.py)として保存します。
コマンドラインまたはターミナルを開き、保存したファイルのディレクトリに移動します。
以下のコマンドを実行してスクリプトを実行します。
python instagram_bot.py
5. まとめ
このスクリプトを使用すると、Instagramの操作を自動化して手間を省くことができます。ぜひ試してみて、自分の用途に合わせてカスタマイズしてみてください!😊📱
また最近、より深く学びたい方向けに記事も書いたので、良かったら読んでくださいね✨
また励みになるので、ちょっとでも役にたったらイイネとフォローしてもらえたらハッピーです💗
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?