파이썬 Selenium 유튜브(Youtube) 크롤링
목표 : 파이썬 자동화 모듈 selenium의 webdriver를 사용하여 유튜브에 원하는 검색어를 던져 나오는 영상 데이터를 대량 및 자동으로 수집하기
던지는 검색어에 따라 나오는 유튜브 영상의 썸네일, 제목, 조회수 등 동적인 Data를 수집해야 하므로 selenium 활용!
▶ 검색 리스트
sample data : 코스피 시가총액 상위 10개 종목
cd_idx | cop_youtube_search | price |
1 | 삼성전자 | 80,500 |
2 | SK하이닉스 | 127,000 |
3 | NAVER | 387,000 |
4 | 카카오 | 142,500 |
5 | 삼성전자우 | 74,200 |
6 | LG화학 | 827,000 |
7 | 삼성바이오로직스 | 853,000 |
8 | 현대차 | 238,000 |
9 | 삼성SDI | 639,000 |
10 | 셀트리온 | 281,000 |
※ 해당 Data는 유튜브 크롤링을 보여주기 위한 예시입니다.
▶ 모듈 import
# 데이터 처리
import pandas as pd
from pandas import DataFrame
import openpyxl
# selenium
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager # webdriver-manager 패키지 다운로드
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
# 시간 명시
from tqdm import tqdm
import time
# 오류 확인
import traceback
각 모듈은 Terminal에서 pip install이나 사용하는 파이썬 툴에 따라서 packages를 장착해주시면 됩니다!
* Selenium을 사용하기 위해선 webdriver가 필수적입니다. 따라서 webdriver 프로그램은 따로 깔아주셔야 합니다.
▶ webdriver option 설정
## Webdirver option 설정
options = webdriver.ChromeOptions()
# options.add_argument('headless') # 크롬 띄우는 창 없애기
options.add_argument('window-size=1920x1080') # 크롬드라이버 창크기
options.add_argument("disable-gpu") #그래픽 성능 낮춰서 크롤링 성능 쪼금 높이기
options.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36") # 네트워크 설정
options.add_argument("lang=ko_KR") # 사이트 주언어
driver = webdriver.Chrome(ChromeDriverManager().install(),chrome_options=options)
webdriver 옵션에 대한 설명은 주석을 통해 달아놨습니다.
▶ 유튜브 사이트 살펴보기
유튜브는 검색어를 던지고 스크롤을 내려야 영상에 대한 정보가 나타남.
( 동적인 data이므로 셀레니움 활용 )
따라서, 자동으로 스크롤을 내려주는 코드 필요!
# webdriver Scroll Down!
driver.get(youtubeUrl)
time.sleep(0.1)
# driver.execute_script("window.scrollTo(0, 80000)")
no_of_pagedowns = 10
elem = driver.find_element_by_tag_name("body")
# print("Scrolling Down!")
while no_of_pagedowns:
# print(10 - no_of_pagedowns, "th Scroll")
elem.send_keys(Keys.PAGE_DOWN)
time.sleep(0.5)
no_of_pagedowns -= 1
▶ 검색어 리스트 다운로드
# 엑셀에서 검색어 추출
df = pd.read_excel("c:/sample data.xlsx", sheet_name= "기업정보") # 경로 바꿔주셔야돼요!
data_list = []
판다스 read_excel 활용하여 데이터 다운로드
다음편 보러가기
2021.06.22 - [Programming & Data Analysis/Python] - 파이썬 유튜브 크롤링 셀레니움 2편
반응형
'Programming > Python' 카테고리의 다른 글
파이썬 영어 한글 발음으로 변환하기 (콩글리시) (4) | 2021.07.05 |
---|---|
파이썬 유튜브 크롤링 셀레니움 2편 (2) | 2021.06.22 |
파이썬 collections 컨테이너형 자료 모듈 (0) | 2021.06.13 |
[파이썬] 웹 url 호출하기 requests post/get (1) | 2021.06.09 |
[Python] 정규표현식 텍스트 전처리 (원하는 문자 추출) (0) | 2021.06.05 |
댓글