파이썬 코딩

2024.11.30. [파이썬] 유튜브 자동 따봉👍

37song 2025. 1. 15. 19:33

네이버 카페 좋아요 다음으로 하고 싶었던 유튜브 자동 좋아요 !!
스타트코딩의 유튜브 채널에 올라온 모든 영상의 좋아요를 누르고 싶었다!!
그만큼 강의가 좋았으니까 !! ㅎㅎㅎ

https://cafe.naver.com/startcodingofficial/1407

 

저는 스타트코딩 유튜브에 단 하나의 좋아요도 누르지 않았습니다

저는 원래 유튜브에 좋아요를 잘 누르지 않는 성격입니다 이유는 모르겠는데, 잘 안 누르게 되더라고요~ 처음 유튜브에서 스타트코딩 강의 영상을 봤을때도 보기만 했지, 단 하나의...

cafe.naver.com

 

▼ 좋아요 누른 목록

사진 삭제
  • 작게문서 너비옆트임
  •  
  • 삭제

사진 설명을 입력하세요.

 

 

 

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import time
import pyperclip
import requests


# 프로필 경로
chrome_profile_path = "C:/Users/inhye/AppData/Local/Google/Chrome/User Data"

# Chrome 옵션 설정
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f"--user-data-dir={chrome_profile_path}")  # 사용자 데이터 경로
chrome_options.add_argument("--profile-directory=Profile 4")
# chrome_options.add_argument("--headless")  # 헤드리스 모드 (브라우저 창이 뜨지 않음)
# chrome_options.add_argument("--disable-gpu")  # GPU 사용 안함 (헤드리스 모드에서 필요)

# 드라이버 시작
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

# Chrome 드라이버 설정
driver.maximize_window()

driver.get("https://www.youtube.com/@startcoding.official/videos")
time.sleep(2)


# 현재 페이지 높이를 추적하면서 반복 스크롤
last_height = driver.execute_script("return document.body.scrollHeight")

while True:
    # 스크롤을 맨 아래로 내리기
    driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")    
    # 페이지 로딩을 기다림
    time.sleep(1)
    # 새로 로드된 페이지의 높이를 얻어옴
    new_height = driver.execute_script("return document.documentElement.scrollHeight")
    # 스크롤을 더 이상 내릴 수 없으면 종료
    
    if new_height == last_height:
        break    
    last_height = new_height


html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')


links = driver.find_elements(By.CSS_SELECTOR, "#video-title-link")

result =[]

for link in links:
    result.append(link.get_attribute('href'))


for i in range (len(result)):
    driver.switch_to.window(driver.window_handles[0])           #첫번째 창으로
    driver.execute_script("window.open('');")                   #새탭 열기
    time.sleep(1)
    driver.switch_to.window(driver.window_handles[-1])          #새탭으로 이동
    time.sleep(1)
    driver.get(result[i])                                       #i번째 url 소환 !!!
    time.sleep(2)

    # 따봉 누르기 !!!!
    driver.find_element(By.CSS_SELECTOR, '#top-level-buttons-computed > segmented-like-dislike-button-view-model > yt-smartimation > div > div > like-button-view-model > toggle-button-view-model > button-view-model > button').click()

    driver.close()

driver.quit()