Tweepy provides a module to authenticate with twitter using OAuth. The example below retrieves the auth credentials from a config file and creates a filter stream for the terms 'technical' and 'elvis'. You can get a CONSUMER_KEY and CONSUMER_SECRET by creating a twitter dev account at http://dev.twitter.com/apps/new. The access token and access token secret can be found under the "My Applications" link in your account.
import tweepy
import ConfigParser
import os
class Listener(tweepy.StreamListener):
def on_status(self, status):
print "screen_name='%s' tweet='%s'"%(status.author.screen_name, status.text)
def login():
config = ConfigParser.RawConfigParser()
fn = os.path.join(os.environ['HOME'],'conf', 'twitter_mining.cfg')
config.read(fn)
CONSUMER_KEY = config.get('auth','CONSUMER_KEY')
CONSUMER_SECRET = config.get('auth','CONSUMER_SECRET')
ACCESS_TOKEN = config.get('auth','ACCESS_TOKEN')
ACCESS_TOKEN_SECRET = config.get('auth','ACCESS_TOKEN_SECRET')
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
return auth
try:
auth = login()
streaming_api = tweepy.streaming.Stream(auth, Listener(), timeout=60)
streaming_api.filter(follow=None, track=['technical','elvis'])
except KeyboardInterrupt:
print "got keyboardinterrupt"
Find the complete codebase on github at: https://github.com/telvis07/twitter_mining