* Colab 기준으로 작성되었습니다.
졸업과제를 진행 중에 유튜브에서 데이터를 추출해와야하는 상황이 생겨 진행했다.
처음엔 어떻게 뽑아낼지 몰라 막막했는데 이미 구현된 패키지를 이용하니 정말 별거 없더라.
썸네일, 동영상 캡쳐, 기타 메타 정보들을 추출해올 것이다.
먼저 필요한 패키지를 설치해준다. pytube를 이용해서 추출할 것이다.
필요한 라이브러리들을 import 해준다.
ytube의 YouTube 객체를 이용해 데이터를 뽑아낸다.
원하는 url를 넣고 YouTube 객체를 만든 후 아래 주석처리 되어있는 것처럼 데이터를 뽑아올 수 있다.
해당 url의 썸네일을 뽑아오는 것인데, 유튜브의 썸네일은 지정된 url에 업로드 되어있다.
그 url을 객체에서 따온 후 urllib을 이용해 다운받아주면 된다.
그 다음으로는 동영상을 캡쳐할 것이다. 동영상 안의 내용을 담아내기 위함인데, 동영상 자체를 다루는 것보다 정한 개수만큼 동영상을 캡쳐해 내용을 담아내는 것이다. 정확히는 그 안의 프레임을 가져오는 것이다.
그렇게 하기 위해 동영상을 다운받는다. 사실 동영상을 다운받지않고 바로 할 수도 있는데 이게 속도가 훨씬 빨라 이렇게 진행했다. colab특성상 초기화하면 모든 정보가 사라지기 때문에, 이렇게 막 다운받고 초기화 시켜버리면 된다.
cv2의 videocapture를 이용해 캡쳐 또는 프레임을 따올 것이다. 그림 5의 맨 마지막 문장에 있는 코드가 videocapture 객체를 만드는 것이다.
cap.read()는 한 프레임을 읽어오고 다음 프레임 여부를 알려준다. hasframe이 그렇다.
이를 이용해 프레임별로 처리를 할 수 있다. 원하는 수의 프레임을 가져오기 위해 if 문을 이용해 처리해주었다.
이렇게 while 문을 돌며 프레임을 따온다.
코딩 실력을 늘리기 좋은 방법 중 하나는 여러 라이브러리를 다뤄보는 것이라 생각한다.
처음엔 되게 어렵게 보이고 막막했는데, 익숙해지면 쉬워지고 별거 아닌 것처럼 느껴진다.
이런 경험이 쌓이다보면, 모르는 라이브러리도 쉽게 익히는 깡따구(?) 또는 용기가 생기는 것 같다.
'DataScience > Crawling & Scraping' 카테고리의 다른 글
더보기, LoadMore 눌러야 할 때 ( dynamic crawling ) (0) | 2023.07.04 |
---|---|
Scraping IMDb review data (0) | 2023.07.02 |
네이버 금융 web scraping (0) | 2022.04.19 |
와디즈 크롤링 - 필요한 정보 수집해오기 (0) | 2022.04.09 |
와디즈 url, 상품 코드 가져오기 (0) | 2022.04.08 |
댓글