インスタの自動でいいねを行うプログラムをPythonで作成しています。
いいねを繰り返し行いたいのですが、一度いいねの処理を行うとそこで止まってしまいます。
以下にコードを記載します。
初心者で分からない事が多いため、ご教授いただけますと幸いです。
よろしくお願い致します。
ーーーーーーーーーーーーーーーーーーーーーーー
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time
import datetime
import random
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import os
import sys
import sqlite3
import re
URL = "https://www.instagram.com"
LOGIN_ID = 'sosad_sohappy__'
PASSWORD = 'mjmjmjmjmj602'
KEYWORD_TAG = '犬好きな人と繋がりたい'
dt_now = datetime . datetime . now ( )
#Instagramのサイトを開く
browser= webdriver.Chrome(ChromeDriverManager().install())
browser.get(URL + '/accounts/login/')
time.sleep(3)
def function_login() :
# 電話、メールまたはユーザー名のinput要素が読み込まれるまで待機(最大10秒)
elem_user_id_input = WebDriverWait(browser, 10).until(
EC.visibility_of_element_located((By.NAME, "username")))
# パスワードのinput要素
elem_password_input = browser.find_element_by_name("password")
if elem_user_id_input and elem_password_input : # ログインID入力 elem_user_id_input.send_keys(LOGIN_ID) # パスワード入力 elem_password_input.send_keys(PASSWORD) # ログインボタンクリック elem_login_btn = WebDriverWait(browser, 10).until( EC.visibility_of_element_located((By.XPATH, '//*[@id="loginForm"]/div/div[3]/button'))) # ボタン押下のアクション actions = ActionChains(browser) actions.move_to_element(elem_login_btn) actions.click(elem_login_btn) actions.perform() time.sleep(5) elem_login_btn = browser.find_element_by_class_name('L3NKy') elem_login_btn.click() time.sleep(5) elem_login_btn2 = browser.find_element_by_class_name('bIiDR') elem_login_btn2.click() # ログイン処理待機(適当) time.sleep(5) # 遷移後のURLでログイン可否をチェック print('【'+str(dt_now)+'】' +'instagramにログインしました') return True else : print('【'+str(dt_now)+'】' +'ログインに失敗しました') False
実行処理
function_login()
任意のタグ検索を実施
def function_search(keyword_tag) :
browser.get(URL + '/explore/tags/' + keyword_tag)
print('【'+str(dt_now)+'】' + keyword_tag + ' でタグ検索しました')
time.sleep(3)
実行処理
function_search(KEYWORD_TAG)
いいね処理
def function_niceClick() :
# 最新の投稿を開く
elem_first_target = WebDriverWait(browser, 30).until(
EC.visibility_of_all_elements_located((By.CLASS_NAME, 'KL4Bh')))[9]
actions = ActionChains(browser)
actions.move_to_element(elem_first_target)
actions.click(elem_first_target)
actions.perform()
time.sleep(2)
# いいねをしてない場合のみ、いいねをクリック elem_target_nice_text = browser.find_elements_by_class_name('_8-yf5') for e in elem_target_nice_text: if(e.get_attribute('aria-label') != 'いいね!') : continue else: browser.find_element_by_class_name('fr66n').click() time.sleep(8)
実行処理
function_niceClick()
browser.quit()
ーーーーーーーーーーーーーーーーーーーーーーー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。