파이썬/크롤링하기

[파이썬 크롤링] 유튜브 댓글 crawl #3 댓글 크롤링

mcdn 2022. 11. 10. 17:23
반응형

 

이전 발행 글들 

2022.11.10 - [크롤링하기] - [파이썬 크롤링] 유튜브 댓글 crawl #1 google api client 라이브러리 위해 api-key 설정하기

 

[파이썬 크롤링] 유튜브 댓글 crawl #1 google api client 라이브러리 위해 api-key 설정하기

Selenium 과 같은 크롤링 도구 없이 API를 활용해서 유튜브 댓글을 크롤링해 보자. 코드는 Colab에서 진행했다. 목차 I. API key 설정하기 (이번 글) 1. 필요한 라이브러리 확인 및 설치 사용하는 라이브

so-es-immer.tistory.com

 

2022.11.10 - [크롤링하기] - [파이썬 크롤링] 유튜브 댓글 crawl #2 객체 알아보기 - 동영상 제목 저장하기

 

[파이썬 크롤링] 유튜브 댓글 crawl #2 객체 알아보기 - 동영상 제목 저장하기

Selenium 등 없이 API를 활용해서 데이터 크롤링하기 이전 글 2022.11.10 - [크롤링하기] - [파이썬 크롤링] 유튜브 댓글 crawl #1 google api client 라이브러리 위해 api-key 설정하기 [파이썬 크롤링] 유튜브 댓

so-es-immer.tistory.com

 

 

목차 

I. API key 생성하기 

II. request결과를 이용해 동영상 제목 저장하기 

III. commentThreads()를 활용해 댓글 정보 저장하기 

 

이전 글에 저장된 video id를 활용해서 comment정보를 끌어올 수 있다. 

comments_22 = []

for video_id in df_22['id']:
    api_obj = build('youtube', 'v3', developerKey=api_key)
    response = api_obj.commentThreads().list(part='snippet', videoId=video_id, maxResults=100).execute()

    while response:
        for item in response['items']:
            comment = item['snippet']['topLevelComment']['snippet']
            comments_22.append([video_id, comment['textDisplay'], comment['authorDisplayName'], comment['publishedAt'], comment['likeCount']])

        if 'nextPageToken' in response:
            response = api_obj.commentThreads().list(part='snippet', videoId=video_id, pageToken=response['nextPageToken'], maxResults=100).execute()
        else:
            break

df1 = pd.DataFrame(comments_22, columns=['id', 'comment', 'author', 'comment_date', 'num_likes'])
df_22 = df_22.reset_index()
sampro_22 = pd.merge(df_22, df1, on='id', how='outer')

댓글이 무척 많기 떄문에 nextPageToken을 활용하는 것이 중요하다. 

 

아래와 같은 댓글 정보를 크롤링할 수 있다. 

반응형