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명만을 뽑아내는 코드 입니다.



+ Recent posts