파이썬 프로젝트: 유튜브에서 검색하고 엑셀로 저장하기

최은석·2022년 11월 20일

파이썬 프로젝트

목록 보기
3/3

프로젝트 개요

프로젝트 배경

당신은 방탄소년단(BTS)을 너무나도 좋아하는 아미입니다. 유튜브에 있는 BTS 동영상 리스트를 만들어 다른 아미들과 공유하고 싶습니다. 일일이 링크를 복사 및 붙여넣기 하지 않고 한번에 리스트를 가져와서 엑셀로 저장할 방법이 있으면 좋겠습니다.

미션

이번 프로젝트의 미션은 다음과 같습니다.

  • 유튜브에서 '방탄소년단'을 검색해 조회수가 많은 순서대로 제목, 링크, 조회수, 업로드 시간 정보 가져오기
  • 가져온 동영상 리스트 내용을 엑셀 파일로 저장하기

힌트

이번 프로젝트를 파이썬으로 수행하기 위해 필요한 내용은 다음과 같습니다.

  • 파이썬 기본 문법

    • 변수, 딕셔너리, 반복문(for)
    • 데이터 출력(기본 출력)
    • 예외 처리 (try ~ except)
  • 함수와 모듈

    • 함수 만들고 사용하기
    • 모듈 설치하고 import해 사용하기
  • 셀레니움(Selenium) 설치하고 사용하기

    • 셀레니움 설치하기
    • 크롬 버전에 맞는 ChromeDriver 다운로드하기
    • 셀레니움을 이용한 웹 브라우저 제어
  • 판다스 DataFrame 활용

    • DataFrame 생성
    • DataFrame 데이터를 엑셀 파일로 출력

이번 프로젝트에 필요한 사전 지식은 다음의 책에서도 확인할 수 있습니다. 특히, 셀레니움을 이용해 유튜브 검색 결과를 가져오는 방법은 다음 책의 7장에서 찾아볼 수 있습니다. 7장에는 셀레니움을 활용한 웹 브라우저 제어와 웹 스크레이핑 방법을 자세히 설명하고 있으니 참고하면 도움이 될 것입니다.

프로젝트 수행

유튜브 검색 결과 가져와 엑셀 파일로 저장하기

여기서는 웹 스크레이핑을 통해 유튜브 검색을 수행하고 검색 결과를 엑셀 파일로 저장하는 방법에 대해 알아보겠습니다.

유튜브 검색 결과 가져오기

셀레니움(Selenium)을 이용하면 웹 브라우저로 유튜브 검색 결과를 가져올 수 있습니다. 파이썬 웹 스크레이핑 완벽 가이드에서는 셀레니움을 이용해 유튜브에서 '방탄소년단'을 검색해 결과를 가져오는 방법을 설명합니다.

다음은 '방탄소년단'을 검색 결과를 DataFrame 데이터로 가오는 예입니다.

df = get_data_from_youtube('방탄소년단') # get_data_from_youtube()은 미리 정의
df

(출력 결과)

제목 링크 조회수 업로드
0 BTS (방탄소년단) '작은 것들을 위한 시 (Boy With Luv) (feat.... https://www.youtube.com/watch?v=XsX3ATc3FbA 16억회 3년 전
1 BTS (방탄소년단) 'Dynamite' Official MV https://www.youtube.com/watch?v=gdZLi9oWNZg 15억회 2년 전
2 BTS (방탄소년단) 'DNA' Official MV https://www.youtube.com/watch?v=MBdVXkSdhwU 14억회 5년 전
3 BTS (방탄소년단) 'MIC Drop (Steve Aoki Remix)' Offi... https://www.youtube.com/watch?v=kTlv5_Bs8aw 12억회 4년 전
4 BTS (방탄소년단) 'IDOL' Official MV https://www.youtube.com/watch?v=pBuZEGYXA6E 11억회 4년 전
5 BTS (방탄소년단) 'FAKE LOVE' Official MV https://www.youtube.com/watch?v=7C2z4GqqS5E 11억회 4년 전
6 BTS (방탄소년단) '피 땀 눈물 (Blood Sweat & Tears)' Off... https://www.youtube.com/watch?v=hmE9f-TEutc 9억회 6년 전
7 BTS (방탄소년단) 'Butter' Official MV https://www.youtube.com/watch?v=WMweEpGlu_U 8.2억회 1년 전
8 [MV] BTS(방탄소년단) _ FIRE (불타오르네) https://www.youtube.com/watch?v=ALj5MKjy2BU 7.4억회 6년 전
9 [MV] BTS(방탄소년단) _ DOPE(쩔어) https://www.youtube.com/watch?v=BVwAVbKYYeM 7.3억회 7년 전
10 BTS (방탄소년단) 'Save ME' Official MV https://www.youtube.com/watch?v=GZjt_sA2eso 6.8억회 6년 전
11 BTS (방탄소년단) 'Not Today' Official MV https://www.youtube.com/watch?v=9DwzBICPhdM 5.5억회 5년 전
12 BTS (방탄소년단) 'Permission to Dance' Official MV https://www.youtube.com/watch?v=CuklIb9d3fI 5.4억회 1년 전
13 BTS (방탄소년단) 'ON' Kinetic Manifesto Film : Come... https://www.youtube.com/watch?v=gwMa6gpoE9I 5.2억회 2년 전
14 BTS (방탄소년단) '봄날 (Spring Day)' Official MV https://www.youtube.com/watch?v=xEeFrLSkMm8 4.9억회 5년 전
15 BTS (방탄소년단) 'Life Goes On' Official MV https://www.youtube.com/watch?v=-5q5mZbe3V8 4.8억회 1년 전
16 BTS (방탄소년단) 'Black Swan' Official MV https://www.youtube.com/watch?v=0lapF4DQPKQ 4.3억회 2년 전
17 [MV] BTS(방탄소년단) _ Boy In Luv(상남자) https://www.youtube.com/watch?v=m8MfJg68oCs 4.1억회 8년 전
18 BTS (방탄소년단) '불타오르네 (FIRE)' Official MV https://www.youtube.com/watch?v=4ujQOR2DMFM 3.4억회 6년 전
19 BTS (방탄소년단) 'ON' Official MV https://www.youtube.com/watch?v=mPVDGOVjRQ0 3.1억회 2년 전

출력 결과를 보면 유튜브 제목, 링크, 조회수, 업로드 시간을 가져온 것을 볼 수 있습니다.

DataFrame 데이터를 엑셀 파일로 저장하기

이제 앞에서 만든 DataFrame 데이터(df)를 엑셀 파일로 출력해 보겠습니다.

excel_file = "BTS_동영상_리스트.xlsx"
df.to_excel(excel_file)

위 코드를 수행하면 아래와 같이 엑셀 파일이 생성된 것을 볼 수 있습니다.

excel_output_image.png

정리

이번 프로젝트에서는 셀레니움을 이용해 유튜브 검색 결과를 가져오는 방법에 대해 살펴봤습니다. 또한 검색 결과를 엑셀 파일로 저장하는 방법에 대해서도 살펴봤습니다. 그외 웹 스크레이핑을 위한 다양한 방법은 아래의 책을 참고하세요.

profile
드림 팩토리 (Dream Factory)

0개의 댓글