Source code for twitterpersona.load_twitter_msg

import pandas as pd
import tweepy
#from utils.auth import authHandler # adding utils function for auth

[docs]def user_info(consumer_key_input, consumer_secret_input, access_token_input, access_token_secret_input): """Take four input parameters with user credentials and stored in a list object. Parameters ---------- consumer_key_input : str twitter consumer key. consumer_secret_input : str twitter consumer secret. access_token_input : str twitter token. access_token_secret_input : str twitter token secret. Returns ------- user_info : list list contains above user info. Examples -------- user_info('consumer_key_input', 'consumer_secret_input', 'access_token_input', 'access_token_secret_input') """ user_info = { "consumer_key": consumer_key_input, "consumer_secret": consumer_secret_input, "access_token": access_token_input, "access_token_secret": access_token_secret_input } return user_info
[docs]def load_twitter_by_user(user, limit, user_info): """Load dataframe which contains specific user and return as a dataframe with total tweets. Parameters ---------- user : str Twitter user_name. limit : int How many tweets you wanna return. Returns ------- pd.DataFrame : Dataframe contains username's twitter info. Examples -------- load_twitter_by_user('Cristiano', 300) """ consumer_key = user_info['consumer_key'] consumer_secret = user_info['consumer_secret'] access_token = user_info['access_token'] access_token_secret = user_info['access_token_secret'] auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth) tweets = tweepy.Cursor(api.user_timeline, screen_name=user, count=200, tweet_mode='extended').items(limit) # create DataFrame columns = ['User', 'Id', "created_at","favorite_count","retweet_count", "text" ] data = [] for tweet in tweets: data.append([tweet.user.screen_name, tweet.id_str, tweet.created_at, tweet.favorite_count, tweet.retweet_count, tweet.full_text.encode("utf-8").decode("utf-8")]) df = pd.DataFrame(data, columns=columns) return df
[docs]def load_twitter_by_keywords(key, limit, user_info): """Load dataframe which contains specific user and return as a dataframe with total tweets. Parameters ---------- key : str tweets keyword. limit : int how many tweets you wanna return. Returns ------- dataframe dataframe contains username's twitter info. Examples -------- load_twitter_by_keywords('2022', 100) """ consumer_key = user_info['consumer_key'] consumer_secret = user_info['consumer_secret'] access_token = user_info['access_token'] access_token_secret = user_info['access_token_secret'] auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth) tweets = tweepy.Cursor(api.search_tweets, q=key, count=100, tweet_mode='extended').items(limit) # create DataFrame columns = ['User', 'Id', "created_at","favorite_count","retweet_count", "text" ] data = [] for tweet in tweets: data.append([tweet.user.screen_name, tweet.id_str, tweet.created_at, tweet.favorite_count, tweet.retweet_count, tweet.full_text.encode("utf-8").decode("utf-8")]) df = pd.DataFrame(data, columns=columns) return df