Kwame Boame February 2016

Get location specific tweets from Twitter using Tweepy

I'm trying to get tweets from a specific location using Tweepy but I get this error when I run the code

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

In my code, I try to get tweets from New York City with the location coordinates for NY. How can I get tweets from NY alone? My guess is to use a range of coordinates say between x,y and y,z. How do I go about this?

Here is my code:

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])

Answers


Kevin February 2016

It needs 4 coordinates. NYC, for example:

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

Here's the first google result of a site that let's you draw bounding boxes. Select CSV format on the bottom-left of the page.

It's important to note, as mentioned in this post, you cannot filter by both location AND keyword.

Post Status

Asked in February 2016
Viewed 3,033 times
Voted 10
Answered 1 times

Search




Leave an answer