2016-02-08 2 views
4

Я пытаюсь получить твиты от конкретного места, используя Tweepy, но я получаю эту ошибку, когда я запускаю кодПолучить местоположение конкретных твиты из Twitter, используя Tweepy

raise TweepError("Wrong number of locations points, " 
tweepy.error.TweepError: Wrong number of locations points, it has to be a multiple of 4 

В моем коде я пытаюсь получить твиты из Нью-Йорка с координатами местоположения в Нью-Йорке. Как я могу получить твиты из Нью-Йорка? Я предполагаю использовать диапазон координат между x, y и y, z. Как мне это сделать?

Вот мой код:

class StdOutListener(StreamListener): 
    """ A listener handles tweets are the received from the stream. 
    This is a basic listener that just prints received tweets to stdout. 
    """ 
    def on_data(self, data): 
     try: 
      print(data) 
      saveFile = open('newtweets.csv', 'a') 
      saveFile.write(data) 
      saveFile.write('/n').encode("utf-8") 
      saveFile.close() 
      return True 
     except BaseException: 
      print ('failed ondata') 
      time.sleep(5) 

    def on_error(self, status): 
     print(status.encode("utf-8")) 

if __name__ == '__main__': 
    l = StdOutListener() 
    auth = OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_token, access_token_secret) 
    #ASK FOR KEYWORD TO COLLECT DATA 
    user_keyword=input("What keyword do you want to mine?") 
    stream = Stream(auth, l) 
    stream.filter(locations=[40.7127,74.0059], track=[user_keyword]) 

ответ

3

Это нужно 4 координаты. Нью-Йорк, например:

stream.filter(locations=[-74.1687,40.5722,-73.8062,40.9467])

Here «s первого Google результат сайта, который позволяет вам рисовать габаритный прямоугольник. Выберите формат CSV в левом нижнем углу страницы.

Важно отметить, что, как упоминалось в этом post, вы не можете фильтровать как по ключевому слову, так и по местоположению.

+1

Спасибо, Кевин. Он отлично работал :) –

Смежные вопросы