Created
March 18, 2013 19:10
-
-
Save alexstorer/5189914 to your computer and use it in GitHub Desktop.
Real Time Twittering!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import twitter | |
import json | |
import pickle | |
import time | |
import random | |
import sys | |
import csv | |
import twitter__login | |
# log in, and collect statuses containing a keyword | |
twitter_stream = twitter__login.login_stream() | |
res = twitter_stream.statuses.filter(track='obama') | |
# store the tweets in a list | |
reslist = [] | |
# keep the possible metadata in a set | |
tweetfields = set([u'favorited', u'in_reply_to_user_id', u'contributors', u'truncated', u'text', u'in_reply_to_status_id', u'user', u'geo', u'id', u'possibly_sensitive', u'retweeted_status', u'filter_level', u'created_at', u'retweeted', u'coordinates', u'in_reply_to_user_id_str', u'entities', u'in_reply_to_status_id_str', u'in_reply_to_screen_name', u'source', u'place', u'retweet_count', u'id_str']) | |
# we know that we want a few things: | |
# user id, followers, tweet itself, geocode | |
# where do we store them? | |
fname = '/users/astorer/Work/shoffman/example_tweets.csv' | |
f = open(fname,'w') | |
dw = csv.DictWriter(f,fieldnames=list(tweetfields)) | |
dw.writeheader() | |
# where do we store them? | |
fname = '/users/astorer/Work/shoffman/example_tweets_brief.csv' | |
fb = open(fname,'w') | |
dwb = csv.DictWriter(fb,fieldnames=['userid','tweet','followers','geocode']) | |
dwb.writeheader() | |
# collect all of the results | |
for r in res: | |
print len(reslist) | |
reslist.append(r) | |
dw.writerow({k:v.encode('utf8') if isinstance(v,unicode) else v for k,v in r.items()}) | |
brieftext = r['text'] | |
if isinstance(brieftext,unicode): | |
brieftext = brieftext.encode('utf8') | |
briefd = {'userid':r['user']['id'], | |
'tweet':brieftext, | |
'followers':r['user']['followers_count'], | |
'geocode':r['geo']} | |
dwb.writerow(briefd) | |
f.close() | |
fb.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment