見出し画像

PythonでInstagramのログインを自動化する方法

こんにちは!Smileです。

今回は、PythonでInstagramのログインを自動化するソースコードを紹介します。

Seleniumは、Chrome、Firefox、IEなどの主要なWebブラウザを自動操作することができます。

例えば、Googleに行って検索キーワードを入れて、一番上に表示された検索結果をクリックして、クリックした先の画面をキャプチャする・・・なんて事もできたりします。

今回はInstagramのログインページを開いて自動でユーザー名とパスワードを入力してログインするプログラムを紹介していきます。

それでは、早速紹介していきます!。

まずは、ソースコード全体を以下に記載します。

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

driver =webdriver.Chrome(ChromeDriverManager().install())  

driver.get('https://www.instagram.com/')

time.sleep(3)

login_id = driver.find_element_by_name("username")
login_id.send_keys("ユーザネーム")

password = driver.find_element_by_name("password")
password.send_keys("パスワード")

login_btn = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]')
login_btn.click()

ログインの自動化は空白行も入れて、たったの18行で実装できてしまいます。すごいですよね😅


次に各コードの説明をしていきます。
まずは、以下に記載してある各ライブラリのインストール&インポートを行います。

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

最初にseleniumのインストールをします。
seleniumのインストールは、やり方が2種類あります。

1つ目は、pipでインストールする方法。

pip install selenium

Pythonのサイトから直接Pythonをダウンロードされた方は、上記コードをコマンドプロンプトで実行するとインストールがされます。

2つ目は、conda install でインストールする方法です。

conda install -c conda-forge selenium

Anaconda をインストールしてPythonをダウンロードした方は、
上記に記載してあるコードをAnaconda Promptで実行してください。

実行すると、インストールが開始され、途中で「Proceed([y]/n)?」という文字が表示されますので、yを入力してエンターを押します。

しばらくすると、インストールが終わります。


次に、ChromeDriverManagerのインストールを行います。
このライブラリを使うことで、プログラム実行時に現在のGoogle Chromeのバージョンを確認し、自動で適切なChrome Driverをあてて実行してくれます。
その為、chromedriverをインストールする必要がなくなり、

・Google Chromeがバージョンアップするたびに対応するChrome Driverを入れ替えて配布し直す必要がある
・exe内にChrome Driverを内包させているのでファイルサイズが大きくなる

上記の問題も解消することができます。


ChromeDriverManagerのインストールは、やり方が2種類あります。

1つ目は、pipでインストールする方法。

pip install webdriver-manager

こちらも先ほどと同様にコマンドプロンプトから上記コードを実行するとインストールされます。

2つ目は、conda install でインストールする方法です。

conda install -c mutirri selenium-chromedriver

こちらも先ほどと同様にAnaconda Promptから上記コードを実行してください。

実行すると、インストールが開始され、途中で「Proceed([y]/n)?」という文字が表示されますので、yを入力してエンターを押します。

timeに関しては、Pythonの標準ライブラリですので、インストールする必要はありません。

全てインストールできたら、ライブラリをインポートしてライブラリを使えるようにします。


次に以下のコードです。

driver =webdriver.Chrome(ChromeDriverManager().install()) 

まず、webdriver.ChromeでChromeブラウザを使用することも明示し、引数にはChromeDriverManager().install()で現在のGoogle Chromeのバージョンを確認し、自動で適切なChrome Driverをあてています。


以下のコードでは、ChromeでWEB上のインスタグラムを開いています。

driver.get('https://www.instagram.com/')


以下のコードでは、ブラウザを開いた後に3秒待機するようにしています。

time.sleep(3)


以下のコードでは、ユーザ名の入力、パスワードの入力、ログインボタンを押す操作をしています。

login_id = driver.find_element_by_name("username")
login_id.send_keys("ユーザネーム")

password = driver.find_element_by_name("password")
password.send_keys("パスワード")

login_btn = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]')
login_btn.click()

​driver.find_elemen_by_name」では、HTML内のname属性名を指定して、
.send_keys()」でユーザ名やパスワードを入力するようにしています。

driver.find_element_by_xpath」では、Xpathを指定して、
指定された部分を「.click()」で押すようにしています。

以上で、ソースコードの紹介と説明は以上になります。
今回のプログラムでわからないことがありましたら、お気軽にご連絡ください!

今回はインスタグラムのログインを自動化するプログラムを紹介しましたが、ソースコードを少し改良&追記するだけでいいねの自動化やフォローの自動化などもできるようになりますので、興味がある方は調べながらプログラムを作成してみてください!


この記事が気に入ったらサポートをしてみませんか?