import time
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
import chromedriver_autoinstaller
url = 'https://www.youtube.com/watch?v=LlcaD2myXt0'
data=[]
chromedriver_autoinstaller.install()
with Chrome() as driver:
wait = WebDriverWait(driver,3)
driver.get(url)
for _ in range(6):
wait.until(EC.visibility_of_element_located((By.TAG_NAME, "body"))).send_keys(Keys.PAGE_DOWN)
time.sleep(2)
for comment in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#content-text"))):
data.append(comment.text)
data_df=pd.DataFrame(data)
data_df.to_excel('오늘댓글.xlsx', index=False)
▶️ 크롬이 설치 되어 있어야 함
▶️ url = 'https://www.youtube.com/watch?v=LlcaD2myXt0' : 댓글을 크롤링하고 싶은 유튜브 주소 입력
▶️ data = [] : 데이터 리스트를 빈 공간으로 저장해둠
▶️ chromedriver_autoinstaller.install() : 크롬 드라이버 설치
▶️ webDriverWait(driver, 3) : 댓글을 긁어올 페이지가 완전히 로딩될 때까지 driver를 최대 3초 기다림
▶️ 2초에 한 번씩 페이지를 내려가는 과정을 6번 반복함
for _ in range(6):
wait.until(EC.visibility_of_element_located((By.TAG_NAME, "body"))).send_keys(Keys.PAGE_DOWN)
time.sleep(2)
▶️ 유튜브 댓글들을 크롤링 하면서 모은 댓글들을 텍스트로 변경시켜 data 리스트에 추가함
→ "#content-text" : 텍스트화
for comment in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#content-text"))):
data.append(comment.text)
▶️ data_df.to_excel('오늘댓글.xlsx', index=False) : 위 과정을 통해 모은 데이터를 엑셀 파일('오늘 댓글')로 저장함
→ index = False : index 내용(댓글 단 사람들 이름)을 삭제함
★ 댓글 단 사람들의 이름을 밝히고 싶으면 idnex = True로 바꿔주면 됨 ★
▶️ activate 사용자명 : anaconda prompt를 실행시켜 아나콘다를 활성화시킴
▶️ pip install chromedriver-autoinstaller : chromedriver를 설치
▶️ conda install openpyxl -y 입력 후 설치
▶️ done이 뜨면 설치 완료
▶️ cmd를 통해 위 코드가 작성되어 있는 파이썬 프로그램을 실행시킴
→ python s09_youtube_comment_selenium.py
▶️ 프로그램이 실행되면서 자동으로 chrome이 켜져 미리 입력해둔 url을 크롤링하는 모습
⇒ chrome이 자동화된 텍스트 소프트웨어에 의해 제어되고 있음
▶️ 프로그램이 종료되면서 파이썬 프로그램이 속한 폴더에 엑셀 파일을 형성
▶️ 엑셀 파일에 저장된 댓글 모음
'Data Analysis' 카테고리의 다른 글
[ Python ] 모듈 (0) | 2021.09.02 |
---|---|
[ Python ] 클래스 (0) | 2021.09.02 |
코인 투자 프로그램 (2) | 2021.08.31 |
[ Python ] 기본값 (0) | 2021.08.31 |
[ Python ] 함수 (0) | 2021.08.31 |