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

조회수 2269회

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)

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)