twython 으로 특정 지역(geocode) 반경안의 트윗만 긁어오고 싶습니다.


twython을 이용해 트위터를 크롤링 했습니다. '더워' 라는 키워드가 들어간 '37.56654, 126.978, 10km' geocode 반경 안의 트윗을 가져오고 싶은데 아무것도 가져와 지지 않습니다. geocode만 param에서 제거하면 잘 수집되더군요 근데 geocode를 넣으면 수집이 안됩니다.

아래 코드에 문제가 있거나 아니면 특정 지역 반경안의 트윗만 가져오는 다른 방법이 있으면 알려주세요

import pprint
from twython import Twython
from dateutil.parser import parse

# 응답 결과가 복잡하므로 예쁘게 출력하기 위해 Pretty Printer 모듈을 사용
pp = pprint.PrettyPrinter(indent=4)

# 개인 계정 정보
TWITTER_ACCOUNT = {
    'oauth_token_secret': '---',
    'oauth_token':  '---',
    'app_secret': '---',
    'app_key': '---'
}

# Twython객체를 생성
twitter = Twython(**TWITTER_ACCOUNT)


def tweet_search(param):
    # param인자 정보로 트위터 검색
    res = twitter.search(**param)

    for tw in res['statuses']:
        # 멀티미디어가 포함되어 있을 경우 url을 뽑아서 media_url로 저장
        if tw['entities'].get('media', None):
            media = [m['media_url'] for m in tw['entities']['media']]
        else:
            media = []

        # 위치 정보가 포함되어 있을 경우 coord에 저장
        if tw['coordinates']:
            coord = tw['coordinates']['coordinates']
        else:
            coord = None

        # 검색 결과를 doc dictionary에 저장
        doc = {'tid': tw['id'],
               'user': tw['user']['screen_name'],
               'tweet': tw['text'],
               'media': media,
               'coord': coord,
               'lang': param['lang'],
               'created_at': parse(tw['created_at'])
               }

        pp.pprint(doc)

param = {
    'geocode': '37.56654, 126.978, 10km',
    'count': 1000,
    'q': '더워',
    'lang': 'ko',
    'result_type': 'popular'  # 인기 트윗과 최신 트윗을 적절히 섞어서 검색 (recent, popular)
}
tweet_search(param)

조회수 159


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close