質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1060閲覧

Pythonでのインスタグラム自動ログイン

hironobu1919

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/02/23 06:08

実現したいこと

Pythonでインスタグラムへの自動ログイン

前提

Pythonのバージョン3.11
seleniumのバージョン4.8.0
グーグルクロームのバージョン110.0.5481.178
です。

あらかじめコード内にインスタグラムにログインする
IDとパスワードを持たせてログインするプログラムを作ろうとしていますがエラーがでます。

発生している問題・エラーメッセージ

Message=Message:
Stacktrace:
Backtrace:
(No symbol) [0x00FA37D3]
(No symbol) [0x00F38B81]
(No symbol) [0x00E3B36D]
(No symbol) [0x00E6D382]
(No symbol) [0x00E6D4BB]
(No symbol) [0x00EA3302]
(No symbol) [0x00E8B464]
(No symbol) [0x00EA1215]
(No symbol) [0x00E8B216]
(No symbol) [0x00E60D97]
(No symbol) [0x00E6253D]
GetHandleVerifier [0x0121ABF2+2510930]
GetHandleVerifier [0x01248EC1+2700065]
GetHandleVerifier [0x0124C86C+2714828]
GetHandleVerifier [0x01053480+645344]
(No symbol) [0x00F40FD2]
(No symbol) [0x00F46C68]
(No symbol) [0x00F46D4B]
(No symbol) [0x00F50D6B]
BaseThreadInitThunk [0x76C300F9+25]
RtlGetAppContainerNamedObjectPath [0x77377BBE+286]
RtlGetAppContainerNamedObjectPath [0x77377B8E+238]
login_form = WebDriverWait(driver, 10).until(

該当のソースコード

Python
ソースコード

必要なライブラリをインポートする

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

インスタグラムのログインページ

url = 'https://www.instagram.com/accounts/login/'

ログインIDとパスワード

username = ''
password = '
'

Chromeドライバーを起動

driver = webdriver.Chrome()

インスタグラムのログインページにアクセス

driver.get(url)

ログインフォームが読み込まれるまで待機する

login_form = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//form[@method='POST']"))
)

try:
# ログイン状態を確認するために、ページがロードされるまで待機する
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, 'username')))

# ログインフォームにIDとパスワードを入力する #username_field = driver.find_element_by_name('username') username_field = driver.find_element(By.NAME, username) username_field.send_keys(username) #password_field = driver.find_element_by_name('password') password_field = driver.find_element(By.NAME, "password") password_field.send_keys(password) # ログインボタンをクリックする login_button = driver.find_element_by_xpath("//button[@type='submit']") login_button.click() # ログインが完了するまで待機する WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//a[@href='/accounts/edit/']")))

except TimeoutException:
print('ログインできませんでした。')```

試したこと

もともとseleniumのバージョン4.8.2でやっていたのですが
グーグルクロームのバージョンと互換性がないような情報を得たため
seleniumのバージョン4.8.0に落としましたがダメでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2023/02/23 14:36

コードは「コードの挿入」で記入してください。 インスタグラムはスクレイピングNGではありませんか?
guest

回答1

0

ベストアンサー

ログインボタンクリック処理を以下のjavascriptを使って置き換えてみるとどうでしょう?
script = '''
document.querySelector('[type="submit"]').disabled=false;
document.querySelector('[type="submit"]').click();
'''
driver.execute_script(script)

投稿2023/02/24 01:41

a.com

総合スコア871

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問