Skip to content

Instantly share code, notes, and snippets.

@mramirid
Last active January 7, 2023 02:10
Show Gist options
  • Save mramirid/2ad5b21de45953c8a86c228fa0cb3869 to your computer and use it in GitHub Desktop.
Save mramirid/2ad5b21de45953c8a86c228fa0cb3869 to your computer and use it in GitHub Desktop.
Twitter API - request tweets of a user
import twitter, re, datetime, pandas as pd
class Twitter_Miner():
request_limit = 20
api = False
data = []
twitter_keys = {
'consumer_key': '',
'consumer_secret': '',
'access_token_key': '',
'access_token_secret': ''
}
def __init__(self, request_limit = 20):
self.request_limit = request_limit
self.set_api()
def set_api(self):
self.api = twitter.Api(
consumer_key = self.twitter_keys['consumer_key'],
consumer_secret = self.twitter_keys['consumer_secret'],
access_token_key = self.twitter_keys['access_token_key'],
access_token_secret = self.twitter_keys['access_token_secret']
)
def mine_user_tweets(self, user, mine_retweets=False):
statuses = self.api.GetUserTimeline(screen_name=user, count=self.request_limit)
data = []
for item in statuses:
mined = {
'tweet_id': item.id,
'handle': item.user.name,
'retweet_count': item.retweet_count,
'text': item.text,
'mined_at': datetime.datetime.now(),
'created_at': item.created_at,
}
data.append(mined)
return data
miner = Twitter_Miner()
flutter_tweets = miner.mine_user_tweets('FlutterDev')
flutter_df = pd.DataFrame(flutter_tweets)
flutter_df.to_csv('flutter_dev.csv')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment