컴퓨터2011. 10. 31. 12:10
연구실 형님에게 설명해주려고 간단히 쓴 이메일입니다. 다시 보니 나름 잘 설명해놨네요.

우선은 간단하게 python을 설치 하셨으면 다음과 같은 패키지들을 더 설치 해야합니다.

먼저 numpy 라고 불리는 패키지 인데.. 흠... 이건 정확하게 윈도우에서 어떻게 설치하는지 알고 있는 바가 없어요.
(리눅스에선 sudo apt-get install python-numpy 이거 하나면 끝;; )


여기 링크를 들어가니까 설치하는 법이 있네요. 이것만 설치하면 나머지는 의존성 있는 패키지 까는것에 아주 쉬워져요. 

이걸 일단 설치하면 easy_install 이란 명령어로 여러가지 패키지를 설치하는데 쉬워져요.

도스창에서 

>easy_install twitter

라고 치면 twitter 관련 api가 설치됨니다. (아마도; 맞을거에요. 리눅스에선 apt로 python-twitter 이거면 끝이죠. ㅎ)

설치가 완료되면 이제 본격적으로 시작할수 있는데요. 


이 페이지를 참고하시면 쉬울거에요. 

>>import twitter
우선 패키지를 불러오구요.

>>api=twitter.Api()
api라는 어떤 변수(object?)에 넣습니다. 

>>statuses=api.GetPublicTimeline()
이렇게 statuses란 변수에 현재 전세계에서 트위터에 올라오는 글을 실시간으로 받은후에.

>>print [s.user.name for s in statuses]

이런 식으로 출력하면 되는거죠. 

['Libbie Galindo', u'\u5343\u96c5\u8336\u623f', u'\u30a4\u30a8\u30db\u30af', 'SantiagO Ruiz', "Chalan' ", 'Rachel Chu', 'Michael Pritchett', 'Kevin Miller', 'Hailey Johnson', 'njrym1011', 'Chassity A.', 'D~air', 'Matthew Martinez III', 'Manu Newells Maure', 'hidemi', u'\u3044\u3057 \u3042\u3044', 'Richard', 'chelly ', u'\u2708Dos_Cabeza \u2708 FLYing', 'Michael Iaconetti']

이런 글들이 출력되네요. 

앞에는 유저네임인거 같구요. u 다음에는 실제 트윗글인것 같습니다. 

영어를 제외한 다른 글들은 저런식으로 인코딩이 이상하게 나오는데요. 
아직 요것은 어떻게 하는지 잘은 모르겠어요.

다음으론 
>>> statuses = api.GetUserTimeline(user)
>>> print [s.text for s in statuses]

이거 같은경우에는.. 어떤 유저의 타임라인을 가져오는건데요. 
user라고 쓴 부분에 'blindfish_' 이런 식으로 넣으면 됨니다. 

그럼 [u'@shinbbong \uc5f0\uad6c\uc2e4\uc774\ub0d0 \u314b \ucd94\uc6b4 \uacc4\uc808\uc774\uc9c0 \u314b', u'@minjuletter \ud5db;; \uc800\ub3c4;; \uc624\ub298\uc740 \ub0a0\uc774 \uc548\uc88b\uc740\uac00 \ubcf4\ub124\uc694;;', u'@titan2573 GMF\uac00\uc2e0\uac74\uac00\uc694?? \u314b', u'@chisun84 \uadf8\ub7f4\ub550 \uc0dd\uac01\uc744 \ud558\uba74 \uc548\ub3fc \uadf8\ub0e5 \ub2ec\ub824\uac00\uc11c \uc778\uc0ac \ud558\ub294\uac70\uc57c \u314b\u314b\u314b', u'@chisun84 \uc624\ub298 \ub108\uc758 \uc6b4\uc744 \ub2e4\uc168\ub2e4;;', u'ktx\ube60\ub974\ub124 \u314b (@ \ubd80\uc0b0\uc5ed (KTX Busan Sta.) w/ 3 others) http://t.co/ClHMht8r', u'\ub09c \ub208\uc6c3\uc74c\uc774 \uc608\uc05c \uc5ec\uc790\ub97c \uc88b\uc544\ud558\ub294\uad6c\ub098.. \ube0c\ub85c\ucf5c\ub9ac\ub108\ub9c8\uc800\uc758 \uc601\uc0c1\uc744 \ubcf4\ub2e4\uac00.. \ub958\uc9c0\uc758 \ub208\uc6c3\uc744\uc744 \ubcf4\uace0 \uc54c\uc558\uc74c;; #fb', u'@ysprime \uc2e4\uc81c\ub85c \ub4e4\uc5b4 \ubcf8\uc801\ub3c4 \uc788\uace0 \ud558\uace0 \uc788\ub294 \ud559\uc0dd\ub3c4 \ubcf8\uc801 \uc788\uc2b5\ub2c8\ub2e4. @sioum', u'\ub2a6\uc740 \uc2dc\uac04 \ubf40\uae00\uc774.. GOP\uac00 \ub5a0\uc624\ub978\ub2e4.. http://t.co/MH7RsftD', u'@seongwhi \ub208\uc740 \ub9ce\uc774 \uc815\ucc29\ub418\uc5c8\ub098\uc694?', u'@hachuly \ud615 \uc5f0\uad6c\uc2e4\uc774\uc5d0\uc694?', u"\ube0c\ub85c\ucf5c\ub9ac \ub108\ub9c8\uc800 '\uc0ac\ub791\ud55c\ub2e4\ub294 \ub9d0\ub85c\ub294 \uc704\ub85c\uac00 \ub418\uc9c0 \uc54a\ub294' http://t.co/d287uUUT"]

이런식으로 저의 타임라인이 나오게 되죠. 역시나 한글은 깨져서 나오구요. 

맨처음이 봉규(@shinbbong)란 후배에게 보내는 맨션이 담겨져 있습니다. 

그다음 기능들은 유저인증 (authentication) 을 하고 나서 뭔가를 더 할수 있는데.. 
저는 이것을 시도해 보다가 아직 성공하지 못했습니다. 

더 디테일한 정보는 
$ pydoc twitter.Api
pydoc이란 명령어로 쳐서 보시면 

더 자세하고 디테일한 사용법이 알려져 있어요. 

처음 파이썬을 사용하시면 반복 loop나 리스트 변수의 기능들이 잘 이해가 되지 않는 경우가 많아요. 

이부분을 잘 보고 쓰시면 코드 보기가 한결 수월해질거에요. 

파이썬은 다른 언어처럼 filename.py 이런 파일을 생성해서 

코드(라고 하기엔 거의 스크립;;)를 넣어서 쉽게 사용할수 있으니 참고 하세요. ^^






이전에 올린 글이 맥과 윈도우에선 안되더라구요.
새로운 방법을 제시하였습니다.

twitter 패키지는 맥과 윈도우에서 너무 안되서 tweepy라고 하는 패키지를 사용하였는데

너무 잘 되네요.

아래 두개의 블로그를 참고 해서 해봤어요.

http://jof4002.net/냥날/PythonTwitter

http://www.halotis.com/2009/09/19/python-twitter-api-library-reviews-and-samples/

방법은 전과 동일하게 easy_install 을 이용해서 tweepy 를 설채해줍니다.

일단 간단한 test code를 보여드릴게요.

>>from tweepy import *
>>api=API()
>>public_timeline = api.public_timeline()
>>print [tweet.text for tweet in public_timeline]

이렇게 입력 하시면

우선은 public timeline 을 가지고 올게에요.
Posted by blindfish