파이썬 Youtube 검색 으로 영상수집 (selenium 코드) 소스오픈 > 프로그램 | 문파 - 잉여 심리,프로그램,직캠
프로그램
 

파이썬 Youtube 검색 으로 영상수집 (selenium 코드) 소스오픈


import os
from datetime import datetime
import time

from browser import Browser
import traceback

class Youtube:
    def __init__(self):       
        self.youtube_url: str = 'https://www.youtube.com/'
     
        #self.app = app
        self.wait = 60
           
             
    def open_youtube(self):
        try:
            self.driver = Browser(user_data_dir='./chrome_cache/moonpa')
            self.driver.get(self.youtube_url) 
 
        except Exception as e:
            print(e)
            pass                             

    def search_keyword(self,keyword):
        self.driver.get('https://www.youtube.com/results?search_query=' + keyword + '+직캠') 
        scroll_pause_time = 2
        for _ in range(20):  # 5번 스크롤 내리기
            self.driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
            time.sleep(scroll_pause_time)   
        videos = self.driver.find_by_css('#video-title')               
        results = []
        for video in videos:  # [:10] 상위 10개의 결과만 수집
            title = video.get_attribute('title')
            href = video.get_attribute('href')
            if href:
                url = href.split('&')[0]  # 'https://www.youtube.com' +  & 이전의 URL만 사용
                results.append({
                    'keyword': keyword,
                    'title': title,
                    'url': url
                })
        return results

           
    def save_to_file(self,results, file_path):
        print(file_path);
        with open(file_path, 'a', encoding='utf-8') as file:
            for result in results:
                file.write(f"{result['keyword']}<=^=>{result['title']}<=^=>{result['url']}\n")
        file.close()


if __name__ == "__main__":
 
    try:
        queries = ['뉴진스','르세라핌','엔믹스','블랙핑크','트와이스','여자아이들','아일릿',
                  '아이브','레드벨벳','트리플에스','키스오브라이프','베이비몬스터','오마이걸',
                  '에스파','itzy','wooah','xg','빅뱅','bts','nct',
                  'enhypen','cravity','xdinaryheroes','더보이즈'
        ] 
       
        y = Youtube()       
        y.open_youtube()
             
        current_datetime = datetime.now().strftime("%Y-%m-%d_%H_%M")
        filename = "yr"+current_datetime+".txt"
        script_path = os.path.abspath(__file__)       
        current_folder = os.path.dirname(script_path) 
        file_path = current_folder + '/'+filename
        for query in queries:
            results = y.search_keyword(query)         
            y.save_to_file(results, file_path)
            print(f"Results for '{query}' have been saved to {file_path}")
               
       
    except Exception:
        with open(f'error.txt', 'a', encoding='utf-8-sig') as f:
            f.write('\n\n')
            f.write(f'{datetime.now().strftime("%Y-%m-%d %H:%M")} - from Youtube\n')
            traceback.print_exc(file=f)
            f.write('\n\n')
        input('에러가 발생했습니다. "error.txt" 파일과 함께 문의해주세요')
신고 주소복사 페이스북으로 공유 트위터로  공유 인스타그램 공유 라인으로 공유 텔레그램으로 공유 카카오톡으로 보내기 네이버로  공유 텀블러로  공유 핀터레스트로 공유
프로그램 목록
P1-T9
번호 제목 글쓴이 조회 날짜
열람 파이썬 Youtube 검색 으로 영상수집 (selenium 코드) 소스오픈 342 06-18
8 카카오톡 일괄발송 , 단체카톡 . 윈도우 . pc 카카오톡 681 06-04
7 자동배경제거 (자동누끼) 프로그램 - 폴더선택으로 여러개 이미지 한번에 1,286 05-27
6 ESM 기간연장. 711 05-24
5 열려있는 엑셀(xls 97-2003)에 접근해서 최종값 추출하는 프로그램 1 593 05-24
4 유튜브 다운받고 시간 정해서 잘라서 쇼츠 변환 프로그램. 973 05-16
3 각각 다른 데이타를 사용하는 크롬창 여러개 열어주는 프로그램(멀티브라우저) 563 05-16
2 트위터 청소기/캡쳐/영상다운 댕댕이 3 1,221 05-12
1 자동 당직 근무 짜기 프로그램 -당직 근무 up 윈도우pc용 +2024-05-27 업뎃 1 778 05-04

접속자집계

실시간 인기 검색어