Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Tistory
- 딥러닝
- Visualization
- 리눅스
- 시각화
- 독후감
- SQL
- 서평
- 티스토리
- MATLAB
- Google Analytics
- MySQL
- Ga
- Linux
- 월간결산
- 한빛미디어서평단
- 블로그
- 파이썬
- 서평단
- Pandas
- 매틀랩
- Blog
- tensorflow
- 통계학
- 파이썬 시각화
- python visualization
- 텐서플로
- matplotlib
- Python
- 한빛미디어
Archives
- Today
- Total
pbj0812의 코딩 일기
[자동화] Youtube API를 이용한 게시글 전체 댓글 크롤링 본문
0. 목표
- 게시글에 있는 모든 댓글의 크롤링
1. 준비
1) 댓글 작업(102개 댓글 및 몇 개의 댓글에 대한 대댓글(3개) 작성, 총합 105개)
* 내 유투브 영상에 댓글 작성
2) 구글 디벨로퍼 키(API KEY) 획득
- 링크 참조
2. 코드 작성
1) 라이브러리 호출
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from oauth2client.tools import argparser
2) 파라미터 지정
DEVELOPER_KEY = "API KEY 입력"
YOUTUBE_API_SERVICE_NAME="youtube"
YOUTUBE_API_VERSION="v3"
youtube = build(YOUTUBE_API_SERVICE_NAME,YOUTUBE_API_VERSION,developerKey=DEVELOPER_KEY)
3) 댓글 크롤링
- videoId 부분에 유투브 영상의 videoId 입력
comments = []
results = youtube.commentThreads().list(
videoId = 'X7-aZpsnw5M',
order='time',
part = 'snippet',
textFormat='plainText',
maxResults = 100
).execute()
4) 페이지 토큰을 이용한 연속된 크롤링
- videoId 부분에 유투브 영상의 videoId 입력
- 크롤링 결과(results)에 존재하는 nextPageToken을 기준으로 하여 계속 크롤링 하는 방식
* maxResults를 100으로 지정하지 않으면 기본인 20개로 크롤링 하기에 시간 및 코스트에 있어서 손해
while results:
for item in results['items']:
comment = item['snippet']['topLevelComment']['snippet']['textDisplay']
comments.append(comment)
if 'nextPageToken' in results:
pageToken = results['nextPageToken']
results = youtube.commentThreads().list(
videoId = 'X7-aZpsnw5M',
order='time',
part = 'snippet',
textFormat='plainText',
pageToken = pageToken,
maxResults = 100
).execute()
else:
break
2. 확인
print(comments)
- 결과
* 대댓글은 크롤링 되지 않음
3. 참고
'빅데이터 > 자동화' 카테고리의 다른 글
[자동화] airflow 에 airflow-code-editor 설치 (0) | 2020.12.03 |
---|---|
[자동화] importrange를 통한 스프레드시트 내용 복사 (0) | 2020.08.26 |
[PYTHON] Youtube API를 활용한 검색 결과 크롤링 및 코스트 확인 (0) | 2020.06.30 |
[자동화] Google SpreadSheet, Calendar 연동을 통한 일정 관리 (3) | 2020.06.29 |
[자동화] Grafana + MySQL 연동 (4) | 2020.06.11 |
Comments