Search code examples
pythontwittertweepy

Is it possible to use the Tweepy module to get the date followers were added?


I apologize in advance if I don't know how to search the Tweepy documentation. I am quite new to python/programming in general.

I have written a small script to pull Twitter follower data for an account I manage for work. I would like to investigate when followers added us to see if our posts are increasing engagement. What I cannot figure out is if I can use the Tweepy module to pull this particular information (when the follower added us)?

Thank you in advance for any help. My MWE:

import tweepy
import pandas as pd

# Load API keys
consumer_key = "my_consumer_key"
consumer_secret = "my_consumer_secret"
access_token = "my_access_token"
access_token_secret = "my_access_token_secret"

# Authenticate access to Twitter API
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# Get the list of followers for the account
followers = api.followers_ids()

# Create a user map
userMap = {}

# Loop over all users
for f in followers:
        # create a temporary list
        tempList = []
        try:
                tweets = api.user_timeline(f, count = 33) # pull the 33 most recent tweets
        except tweepy.TweepError:
                print('Failed to run command.') # Tweepy throws an error if a user hasn't tweeted
        # Loop over all tweets per each user f
        for t in tweets:
                tempList.append(t)
        userMap[f] = tempList

# Create lists of pertinent data
dateList = []
favList = []
rtList = []
keyList = []
def genList(tweetList):
        for tweets in tweetList:
                for t in tweets:
                        keyList.append(str(t.id))
                        dateList.append(str(t.created_at))
                        favList.append(str(t.favorite_count))
                        rtList.append(str(t.retweet_count))

genList(userMap.values())

# Create a pandas data frame
df = pd.DataFrame(list(zip(keyList, dateList, favList, rtList)), 
                columns = ['userID', 'created_at', 'favorited', 'retweeted'])

Solution

  • This information is not provided by Twitter.

    The followers/list (in Tweepy followers() method) returns a list of User objects. It looks like the only solution is to monitor the changes and manage the history yourself.