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




DJango Project를 Apache와 설정하는것으로 해보았습니다.

http://docs.djangoproject.com/en/dev/howto/deployment/modpython/

에 설명 된대로 아래와 같이 설정을 해줘야 하는데요

 1 <Location /django_bookmarks>

  2     SetHandler python-program

  3     PythonHandler django.core.handlers.modpython

  4     SetEnv DJANGO_SETTINGS_MODULE myproject.settings

  5     PythonOption django.root /django_bookmarks

  6     PythonDebug On

  7     PythonPath "['/path/to/project'] + sys.path"

  8 </Location>


   7     PythonPath "['/path/to/project'] + sys.path"

요 파트 때문에 삽질했습니다 ㅎㅎ

Proejct Path가 /work_django/myproject 라면,

이 패스가 아니라, /work_djagon 까지 입니다. 

그래서 Package Import시 myproject.setting 혹은 myproject.urls 같은것을 Symbol로 찾게 되는데요

myproject folder밑에 setting.py를 찾게 되는것이지요 Python 초보라서 이런것들을 잘 모르고 있었나 봅니다 :)


 

+ Recent posts