Dev/Python

[Python / Crawling]Tweepy를 통해 트위터에서 구어체 문장 수집하기 2

kyeoneee 2017. 5. 10. 23:31
반응형

 Python에서 트위터 API를 사용하기 위해서는 Tweepy 모듈을 설치하여야 한다. 터미널창에서 

$pip install tweepy

 명령어를 통해 Tweepy 모듈을 설치한다.


 위의 사진과 같이 모듈 설치가 완료되면 각자 사용하는 파이썬 편집기에서 import tweepy를 통해 정상적으로모듈을 사용할 수 있다.



 이전 글에서는 사용자가 업로드한 트윗들을 출력하는 예제 프로그램이었지만 이번에는 실질적으로 데이터를 수집하기 위하여 원하는 단어가 있는 트윗들을 크롤링하는 코드를 짜보고자 한다. 우리 팀이 원하는 데이터인 구어체가 많이 포함 할 만한 단어로 "그냥", "근데", "했어"이 세가지 단어를 포함하는 트윗들을 크롤링 하고자 한다. (tweepy github를 참조 - https://github.com/tweepy/tweepy)

# -*- coding: utf-8 -*-
# 한글 주석을 사용하기 위함
import tweepy

consumer_key = 'consumer_key'
consumer_secret = 'consumer_secret'
access_token = 'access_token'
access_token_secret = 'access_token_secret'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

class MyStreamLstener(tweepy.StreamListener): #기존 tweepy의 streamListener의 오버라이딩
def on_status(self, status):
print (status.text)

def on_error(self, status_code):
if status_code == 420: #stream에 연결을 하지 못하는 에러가 발생하는 경우 False를 반환
return False

if __name__ == '__main__':
myStreamListener = MyStreamLstener()
myStream = tweepy.Stream(auth=api.auth, listener=myStreamListener)
myStream.filter(track=['hungry']) #트위터 stream 중에 []배열 안에 들어간 단어들이 있는 문장만을 필터링 해줌


 위의 코드를 통해 원하는 keyword가 포함된 트윗들을 크롤링 할 수 있다. 아직 예제코드를 사용하여 크롤링을 하여 영어 키워드로만 크롤링을 하였다. 우리가 필요로 하는 데이터는 한글 데이터이므로 한글 keyword를 입력하니 예상대로 문제가 발생하였다. 인코딩으로 이 문제를 해결 할 수 있을 것 같으나 이 부분에 대해서 아직 해결을 하지 못하여서 더 찾아보고 공부가 필요하다. 그리고 한글을 사용하게 되면 지난 인턴기간 동안 있었던 인코딩 문제를 해결해야 할 것으로 예상이 된다.

반응형