2016년 1월 31일 일요일

[데이터 분석] 파이썬에서 소셜 데이터 수집과 분석

이 글은 정광윤님이 DB Guide.net에 연재한
개발자를 위한 파이썬 분석을 정리한 내용입니다.

---------------------------------------------------------------------------------------------------

 트위터에서 트윗되고 있는 데이터 중에서 파이썬, 자바스크립트, 루비(Ruby)의 인기도를 분석해 보자.

0. 준비하기

먼저 필요한 패키지들은 다음과 같다.

1. pandas
2. matplotlib
3. json
4. re
5. tweepy

여기서 3,4번은 이미 내장되어 있는 패키지이다. 1,2 번은 pip install을 사용해 설치하면 되기 때문에 tweepy 설치 방법만 알아 보겠다.

1. Twitter API key 획득하기

 Application Programming Interface의 약자인 API라는 것이 있다. 이 API 덕분에 우리가 데이터를 흔하게 접할 수 있고 쉽게 데이터를 획득 할 수 있다. API는 즉, 프로그래밍 언어로 어플리케이션에 접근할 수 있는 인터페이스이다.

 트위터로부터 데이터를 가져오기 위해서는 아래 4가지 정보가 필요하다.

1. API Key
2. API Secret
3. Access Token
4. Access Token Secret

 이 네가지 정보를 얻기 위해서는 트위터 계정이 있어야하고 계정에 본인의 핸드폰 번호도 등록되어 있어야 한다.

1. https://apps.twitter.com/에 접속한다.
2. 우측 상단의 'Create New App'을 클릭한다.
3. 양식들에 값들을 적당히 채운다.(이름, 설명, 웹사이트(아무거나 입력 가능)만 입력하면 된다.)

4. 'Create your Twitter application'을 클릭한다.
5. 'Keys and Access Tokens' 탭으로 이동하면 Consumer Key(API Key), Consumer Secret(API Secret)이 있다.
6. 그 아래를 보면 'Create my access token' 버튼이 있고 이를 클릭한다.
7. 'Access token'과 'Access token secret'이 생성된다.

2. Twitter API에 연결해 데이터 다운로드 받기

 트위터 API에 접근하기 위해 Tweepy 라이브러리를 이용할 것이다.

터미널에서 다음과 같이 입력해 설치!


설치를 하다보니 pip의 버전을 8.0.2로 업그레이드 하라는 문구가 나와 업데이트를 했더니 그 후 부터 pip 명령어가 작동을 안한다.... 이거 해결하는 방법 아시는 분은 댓글로 알려주세요 ㅜ

 그 다음 아래와 같은 소스를 작성해서 twitter.py로 저장!


 중간 부분인 ①에 선언한 StdOutListener라는 클래스는 수 많은 트윗들을 가져와 print하는 역할을 하는 클래스이다. 우리는 이 print된 트윗들을 텍스트 파일로 저장할 것이다. 이 클래스는 tweepy의 StreamListener라는 클래스를 상속 받고 on_data와 on_error라는 함수를 오버라이딩 한다.

 ② 부분에서는 위에서 선언한 StdOutListener 클래스를 통해 I라는 객체를 만들었다. Access Token을 설정한 이후 stream = Stream(auth,I)를 통해 현재 트위터에서 발새되고 있는 트윗의 스트리밍을 객체로 만든 것이다. 객체의 모든 트윗을 다 저장할 수는 없기 때문에 filter를 통해 우리가 알고자 하는 파이썬, 자바스크립트, 루비만 필터링해 가져오도록 했다. 이것을 다음과 같이 실행해 보자.


 이 작업은 현재 트위터의 트윗 스트리밍에서 python, javascript, ruby라는 텍스트가 들어 있는 트윗을 실시간으로 twitter_data.txt 파일에 해당 내용을 출력-저장하는 것이다. 따라서 이작업에는 시간이 걸리기 때문에 데이터가 수집된 후에 계속 쓰도록 하겠다.

댓글 없음:

댓글 쓰기