Show Hey Tech📝 목차Update Log 🛠 Update Log👏 Version 1.0.1 @ 2022-10-11(1) 콘텐츠 조회수 및 업로드일 추출 로직 추가Heo Jin 님 요청사항으로 추가 및 테스트 완료하였습니다. 1. 주요 기능본 포스팅에서는 유튜브 검색 결과 콘텐츠의 정보를 수집하는 Scraper를 개발합니다. ※ Scrap이란?('더보기' 클릭) 더보기 Scrap[스크랩]은 웹 페이지에서 특정 데이터를 가져오는 행동을 말합니다. 이처럼 Data Scraping을 하는 프로그램을 Data Scraper 또는 Web Scraper라고 부릅니다. 유튜브 내 특정 검색 결과의 콘텐츠를 자동 탐색하는 모습(1) 수집 데이터 종류- 콘텐츠 제목 - 조회수 - 업로드 일자(=현재 시간 기준 업로드 경과일) 2) 데이터 프레임 포맷팅데이터 Scrap 결과2. 크롬 설치※ 이 코드는 크롬에서만 동작합니다. 크롬 브라우저가 설치되어 있지 않다면 이곳을 클릭하셔서 미리 다운로드하여 주시길 바랍니다. 3. 전체 코드전체 코드는 아래 링크(Github)에 업로드하였습니다. src 폴더 내 주피터 노트북 파일에서 작업하였습니다. 전체 코드를 다운로드하여 주시길 바랍니다. GitHub - park-gb/youtube-content-scaper: 유튜브 내 검색 결과의 콘텐츠 정보 추출 Scraper 유튜브 내 검색 결과의 콘텐츠 정보 추출 Scraper. Contribute to park-gb/youtube-content-scaper development by creating an account on GitHub. github.com 4. 패키지 설치코드 실행 전에 몇 가지 패키지를 설치해야 하며, 활용한 패키지 정보는 다음과 같습니다.
2가지 패키지 설치 방법을 제안해 드립니다. 방법 1. pipenv 활용(권장)
pipenv 사용방법 관련해서는 이곳에 자세히 정리해 두었으니 참고해 주시길 바랍니다. 방법 2. pip 활용사용한 패키지를 일일이 다운로드하는 방법도 있습니다.
5. 코드 설명전체 코드는 Github에 업로드 했으니 누구나 다운로드하실 수 있습니다. 작업 프로세스나 코드에 부연설명이 필요하신 분들은 참고하시길 바랍니다. 1) 패키지 Import
필요한 패키지를 설치하고 import 합니다.
크롬을 프로그램을 통해 제어하기 위해서는 크롬 드라이버가 필요합니다. 크롬 드라이버를 현재 PC에서 사용 중인 크롬 브라우저 버전에 맞는 파일을 다운로드하여 사용할 수도 있습니다. 하지만, 크롬 버전을 확인하고 이에 맞는 크롬 드라이버를 찾아 다운로드하여야 하기 때문에 번거로운
작업입니다. 2) 무한 스크롤 함수
유튜브 웹 페이지는 스크롤을 해야 새로운 콘텐츠 정보를 제공하기 때문에, 모든 검색 결과를 확인하기 위해서는 반드시 무한 스크롤 기능이 필요합니다. 페이지 로딩을 일정 시간 동안 기다리며 스크롤이 불가할 때까지 무한 반복하여 스크롤하는 함수입니다. 3) 데이터 Scrap검색 키워드 설정
유튜브에서 검색할 키워드를 입력합니다. 해당 검색어는 드라이버에서 접근할 URL에 활용됩니다. 유튜브의 경우, 검색어 내 띄어쓰기를 URL에서 + 기호로 표현한다는 점에서, replace 함수를 활용해 띄어쓰기를 자동으로 +로 변환하는 로직을 활용하였습니다. 저는 예시로 잭 니콜라스 Golf Club 관련 콘텐츠를 검색해 보고자 했습니다. 드라이버 세팅 및 실행
크롬 드라이버를 변수에 할당하고, 유튜브 웹 페이지에서 키워드 검색 시 활용하는 URL 구조와 검색어를 조합합니다. 드라이버로 조합한 URL에 접근합니다. 일정 시간 페이지 로딩이 지나면 무한 스크롤 함수를 실행합니다. 페이지 소스 추출
페이지 소스를 추출합니다. 4) 데이터 추출
페이지 소스에서 콘텐츠와 관련된 데이터를 추출하여 content_total 변수에 저장하고 제목과 링크를 추출합니다. 다음으로 조회수와 업로드일자를 추출합니다. 추출한 데이터는 딕셔너리 형태로 포맷팅 합니다. 5) 데이터 프레임 포맷팅
딕셔너리 기반의 데이터는 2차원 데이터 프레임으로 포맷팅 하고, 데이터 상태를 확인합니다. 데이터 Scrap 결과6) 데이터 저장
데이터가 잘 추출되었으니 로컬인 data 폴더에 저장합니다. 📝 참고할 만한 포스팅1. Python 기반 유튜브 콘텐츠 Scraper V.1.0.1 포스팅 내용에 오류가 있거나, 코드 리뷰, 피드백, 질문 모두 대환영입니다. 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :) |