Google Colab(코랩)으로 트위터 크롤링 후 텍스트 파일(txt)로 저장하기

 Google Colab(구글 코랩)으로 크롤링한 후 결과물을 텍스트 파일로 저장하는 방법입니다. 구글 코랩은 온라인 상에서 파이썬을 코드를 작성하고 실행할 수 있는 사이트입니다.
 코랩에서 파이썬 코드를 사용하여 특정 트위터 계정 하나를 골라, 해당 계정의 모든 트윗의 텍스트를 모을 수 있습니다. 모든 트윗이라고 해도 최대 200개까지만 되는 것 같습니다. 이유는 잘 모르겠는데 트위터에서 200개 이후의 트윗은 안 되더라구요. 실제로 트위터에서 스크롤 내려서 확인해도 최대치가 정해져 있습니다.


 일반 사용자의 트윗을 크롤링하면 당연히 기분이 나쁘겠죠. 따라서 자동 봇의 트윗을 모아 볼 것입니다. 분석까지 해야 크롤링의 의미가 있지만 일단 txt로 저장하는 방법까지만 해봤습니다.

트위터 개발자 신청하기

 트위터 API를 사용하려면 개발자 신청을 해야 합니다. 아래 링크로 가서 개발자 계정을 만들어 주세요.

 계정을 만드는 데에 어려움이 있다면 아래 블로그를 참고하세요. 다른 분 블로그입니다.

 개발자 계정 만드는 과정은 옛날이랑 달라져서 제가 도움을 드릴 수 없을 것 같습니다. 몇 년 전까지만 해도 별 과정이 없었던 것 같은데 좀 바뀌었네요.
 계정을 만드신 뒤에 'Create an app'을 클릭하셔서 앱을 만드시면 됩니다. 그냥 솔직하게 고르시면 됩니다. 목적은 Academic에서 선택하시면 되겠네요.

 대충 앱을 만든 후 Details - Keys and tokens에 들어가면 API 키가 나옵니다.
 API key, API secret key, Access token, Access token secret을 메모장같은 곳에 복사해 두시고 코랩에서 코딩을 시작하시면 됩니다.

구글 코랩 시작하기

 구글 코랩을 켜는 방법은 다음과 같습니다.
1. 구글 드라이브 들어가기
2. 왼쪽의 '새로 만들기' - '더보기' - 'Google Colaboratory'

 코랩에서 작업한 파일은 자동으로 구글 드라이브에 저장됩니다.

 처음 시작은 트위터 크롤링을 도와줄 라이브러리를 설치하는 것으로 시작합니다. 다른 라이브러리도 많지만 여기서는 python-twitter을 사용할 것입니다. 사용 방법 찾아보면 특정 계정 트윗을 모으는 것 말고도 다양한 함수가 있습니다.
 아래 코드를 입력하고 실행하여 패키지를 설치합니다. 실행은 코드 왼쪽의 재생 버튼을 누르거나 키보드에서 Ctrl+Enter를 누르세요.

!pip install python-twitter

 라이브러리를 불러와서 API 키를 입력해 줍니다. 000에 본인 키를 입력하시면 됩니다.

import twitter

api = twitter.Api(consumer_key = '000',
                  consumer_secret= '000',
                  access_token_key= '000',
                  access_token_secret= '000')

 트윗을 모을 계정을 입력합니다. 전 트위터의 명언봇(@Famoussay_bot)의 트윗을 모으려 합니다. print는 크롤링한 내용을 확인하기 위한 함수입니다.

tweets = api.GetUserTimeline(screen_name= "@Famoussay_bot", count=200, include_rts=False, exclude_replies=False)
for tweet in tweets:
  print(tweet.text)

 screen_name: 계정 아이디
 count: 크롤링할 트윗 수
 include_rts: RT한 트윗도 포함할 것인지 선택
 exclude_replies: 답변 트윗도 포함할 것인지 선택

 리스트를 만들어서 트윗의 텍스트들을 저장합니다. 여기서도 print는 진행 상황을 확인하기 위해 사용했습니다. 굳이 작성하지 않아도 됩니다.

tweet_text = []
for tweet in tweets:
    tweet_text.append(tweet.text)

print(tweet_text)

 이제 해당 내용을 텍스트 파일로 저장하면 됩니다.

f = open("Famoussay_tweet.txt","w", encoding='UTF-8', newline='')
for num in range(0,len(tweet_text)):
    f.write("%s\n"% tweet_text[num])
f.close
from google.colab import files
files.download('Famoussay_tweet.txt')

 이렇게 하면 'Famoussay_tweet.txt'라는 파일이 다운로드 됩니다.


 다운받은 텍스트 파일 안에 명언봇의 트윗 내용이 정리되어 있습니다.

댓글 쓰기

0 댓글