1일차 요약
- 빅데이터 분석을 위한 크롤링 공부를 위주로 진행
- beautifulsoup으로 html 코드 파싱
- selenium의 웹드라이버를 사용하여 크롬 조작
- html에서 원소값을 찾을 때 find_element(By.ID, XPATH, ..., {tag}를 사용하여 원하는 값을 추출해오는 실습 진행
종이 신문 -> 온라인 기자 -> 스마트폰(이동이라는 제약이 사라짐): 프리랜스 기자 & 블로그 기자 -> 1인 미디어 크리에이터
아이디어에 맞는 데이터를 찾는 것이 중요..!
- 데이터 확보 중요
팀빌딩 포지션: 기획, 문서화, 디자인, 프론트(웹, 앱), 백엔드, 인공지능
2024년 인공지능 공모전 방향: 인공지능 기술을 어떻게 서비스로 제공하는지(개발까지 진행되어야 함) -> 인공지능을 서비스화하는데 주력하는 공모전
🚨이제는 selenium에서 웹 드라이버를 정의할 때 더이상 chrome driver를 설치하지 않아도 된다. 아래의 코드를 참고하면 webdriver 오류가 나지 않는다!
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import pandas as pd
# 여기서 알게된 점..! time.sleep을 중간중간 넣어주지 않으면 로봇으로 인지하는지 안 넘어가짐
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
inserturl = '푸바오'
url = f'https://www.youtube.com/results?search_query={inserturl}'
driver.get(url)
time.sleep(2)
elem1 = driver.find_element(By.XPATH, '//*[@id="thumbnail"]/yt-image/img')
elem1.click()
time.sleep(2)
driver.execute_script('window.scrollTo(0, 800)') # 한번 스크롤
time.sleep(3)
html_source = driver.page_source
soup = BeautifulSoup(html_source, 'html.parser')
id_list = soup.select('yt-formatted-string#content-text')
data_list = soup.select('yt-formatted-string#content-text') # comment 리스트
comments = []
for i, data in enumerate(data_list):
if data.get('class')[1] =='ytd-comment-renderer':
comments.append(data.text)
# print(data)
df = pd.DataFrame(comments)
df