On Sunday (Dec. 06) parliamentary elections were held in Venzuela. I took the opportunity to fetch some data from Twitter's public stream and use graphics to show what was happening in " social media " during that day. To achieve this I relied in the Python programming language.

I decided to monitor all geolocalized tweets with my home city (Caracas) as origin over a period of five days, two days before the elections, the election day, and two days after it.

To fetch the data, I used the Twython library since I've worked with it before. Therefore, it should be easy to setup a quick script to fetch the data and save it in a text file.

Once the API and OAUTH keys are correctly following Twython's documentation, the next step is to fetch the data originating in certain location, passing it as a parameter to the streaming API. Twitter uses a set of bounding boxes to track the location of a tweet and only geolocated Tweets falling within the requested bounding boxes will be included.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import json , os from twython import TwythonStreamer caracas_location = "-67.017225,10.419554,-66.778716,10.52006" class MyStreamer ( TwythonStreamer ): def on_success ( self , data ): if data [ 'coordinates' ] is not None : with open ( 'tweets.txt' , 'a' ) as f : f . write ( json . dumps ( data )) f . write ( '

' ) def on_error ( self , status_code , data ): with open ( 'errors.txt' , 'a' ) as f : f . write ( 'error: {0} : {1} ' . format ( status_code , data )) stream = MyStreamer ( os . environ [ 'APP_KEY' ], os . environ [ 'APP_SECRET' ], os . environ [ 'OAUTH_TOKEN' ], os . environ [ 'OAUTH_TOKEN_SECRET' ]) stream . statuses . filter ( locations = caracas_location )