Instagramの投稿に自動でLikeする – Python

備忘録です。HTMLの構造が変わらない限りコピペで動きます

 

seleniumを使ってブラウザを操作しました

 

ログインして、タイムライン(自分がフォローしてるユーザーの投稿)の最新の投稿に自動的にイイねします

 

もし、すでにイイねしてた場合は、except Exception as e:でエラー処理に回して

 

イイねしてない記事までループを続行します

 

下記のスクリプトは、一旦、count = 0 while (count < 9):にしてます

 

みんな、自分の投稿に「イイね!」されると嬉しいものです

 

みんなに「イイね!」してあげましょう

 

インスタグラムAPIがあまりにもクソだったので、自分で作ることにしました

実装

 

"""
*
*
*
*
*seleniumの使い方は自分で勉強してください。
*macOS Python3.5で動作確認済みです。
*
*
*
*
"""
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 


driver = webdriver.Chrome("/Users/hujisawa/Desktop/chromedriver")
driver.get("https://www.instagram.com/accounts/login/")

"""
*
*
*
*
*インスタグラムのログイン窓のHTMLの構造を調べて、
*ログイン窓のユーザーネームとパスワードのHTMLを取得して
*ユーザーidをパスワードを入力してログインします。
*
*
"""
elem_search_word = driver.find_element_by_class_name("_2hvTZ")
elem_search_word.send_keys("hujisawa4")

password = driver.find_element_by_name('password')
password.send_keys("あなたのパスワード")


driver.find_element_by_css_selector(".oF4XW.sqdOP.L3NKy").click()

driver.implicitly_wait(10)
driver.find_element_by_css_selector(".aOOlW.HoLwm").click()

"""
*
*
*
*
*ログインすると、新しい要素が出現するまで若干待ちます。
*
*
*
*
"""

"""
*
*
*
*最新の投稿にループを回してイイねします。
*すでにイイねしてた場合は、except Exception as e:でエラー処理に回して、
*イイねしてない記事までループを続行します。
*
*
*
"""
count = 0
while (count < 9):
  try:
    print ('The count is:', count)
    myDynamicElement = driver.find_element_by_class_name("glyphsSpriteHeart__outline__24__grey_9")
    myDynamicElement.click()
    count = count + 1
  except Exception as e:
   print("You alredy LIKES " + str(e))

print ("Done!")

  

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

Python