개발/자동화

티스토리 좋아요 자동화 코드 #1

kimchangmin02 2025. 7. 25. 21:17

 

 

from selenium import webdriver
from seleniuhttp://m.webdriver.common.by import By
from seleniuhttp://m.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from seleniuhttp://m.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

# --- 설정 ---
TARGET_URL = ''     #이 부분은 좋아요 누르고싶은 주소
WAIT_TIMEOUT = 10 # 웹 요소가 나타날 때까지 기다리는 최대 시간 (초)

print("자동화를 시작합니다. '좋아요' 클릭과 브라우저 종료를 반복합니다.")
print("프로그램을 종료하려면 이 창에서 Ctrl + C 를 누르세요.")

# --- 무한 루프 시작 ---
while True:
    driver = None # 루프가 시작될 때마다 driver 변수 초기화
    try:
        # 1. (반복) 새로운 브라우저 창 열기
        print("\n--- 새로운 시도를 시작합니다 ---")
        chrome_options = webdriver.ChromeOptions()
        driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
        wait = WebDriverWait(driver, WAIT_TIMEOUT)

        # 2. 목표 URL로 이동
        driver.get(TARGET_URL)
        print(f"'{TARGET_URL}' 페이지로 이동했습니다.")

        # 3. '좋아요' 버튼 찾기 및 클릭
        like_button_selector = "#reaction-45 button.btn_post"
        print(f"CSS 선택자: '{like_button_selector}' 를 사용하여 '좋아요' 버튼을 찾습니다...")
        like_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, like_button_selector)))
        print("성공: '좋아요' 버튼을 찾았습니다.")
        
        like_button.click()
        print("성공: '좋아요' 버튼을 클릭했습니다.")

        # 4. 3초 대기
        print("작업 완료! 3초 후 브라우저를 닫습니다.")
        time.sleep(3)

    except Exception as e:
        print(f"실패: 작업 중 오류가 발생했습니다 - {e}")

    finally:
        # 5. (반복) 브라우저 창 닫기
        # try 블록이 성공하든 실패하든, 드라이버가 생성되었다면 항상 실행
        if driver:
            print("브라우저를 종료합니다.")
            driver.quit()

    # 6. 다음 반복을 위해 10초 휴식
    print("\n다음 시도를 위해 10초간 휴식합니다...")
    time.sleep(10)