1. Twitter API 찾기.
특정 Tweet을 Retweet 한사람을 조회 하는 API
https://dev.twitter.com/docs/api/1/get/statuses/%3Aid/retweeted_by
/statuses/:id/retweeted_by
* 주의 할점은 한번에 100명 까지만 조회 하기 때문에, parameter 중에 page 를 이용하여 추가 조회를 해야합니다.
2. Python 에서 Twitter API 호출하여, 20명 추출하기.
제가 분석할 tweet의 id 가 '194985314832490496' 임으로 호출 url 은 아래와 같이 됩니다.
https://api.twitter.com/1/statuses/194985314832490496/retweeted_by.json
해당 json 은 Dictionary 의 array 로 되어 있습니다. 제가 필요 한건 리트윗 하신분의 id 임으로 'screen_name' 속성만 가져오면 될것 같습니다.
아래는 'Visual JSON'이라는 어플로 호출해본 결과 입니다.
# -*- coding:utf-8 -*-
import httplib
import urllib
import csv
import codecs
import json
import random
tweet_id='194985314832490496'
def getJson(page):
conn = httplib.HTTPConnection('api.twitter.com')
conn.request("GET","/1/statuses/%s/retweeted_by.json?count=100&page=%s"%(tweet_id,page))
response = conn.getresponse()
data = response.read()
encoding=response.getheader('content-type').split('charset=')[-1]
conn.close()
jsonData = json.loads(data)
return jsonData
if __name__=='__main__':
entries = []
page=1
while(1) :
jsonData = getJson(page)
for jsonItem in jsonData :
entries.append(jsonItem['screen_name'])
if len(jsonData) < 100:
break
random.shuffle(entries)
winners = entries[0:20]
print winners
위의 코드는 해당 tweet의 screen_name 목록을 만들고 shuffle을 한후, 상위 20명만을 뽑아내는 코드 입니다.







