mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-05 17:34:49 +08:00
Upgrade to Python 3.13 (#11588)
This commit is contained in:
59
web_programming/get_user_tweets.py.DISABLED
Normal file
59
web_programming/get_user_tweets.py.DISABLED
Normal file
@ -0,0 +1,59 @@
|
||||
import csv
|
||||
|
||||
import tweepy
|
||||
|
||||
# Twitter API credentials
|
||||
consumer_key = ""
|
||||
consumer_secret = ""
|
||||
access_key = ""
|
||||
access_secret = ""
|
||||
|
||||
|
||||
def get_all_tweets(screen_name: str) -> None:
|
||||
# authorize twitter, initialize tweepy
|
||||
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
||||
auth.set_access_token(access_key, access_secret)
|
||||
api = tweepy.API(auth)
|
||||
|
||||
# initialize a list to hold all the tweepy Tweets
|
||||
alltweets = []
|
||||
|
||||
# make initial request for most recent tweets (200 is the maximum allowed count)
|
||||
new_tweets = api.user_timeline(screen_name=screen_name, count=200)
|
||||
|
||||
# save most recent tweets
|
||||
alltweets.extend(new_tweets)
|
||||
|
||||
# save the id of the oldest tweet less one
|
||||
oldest = alltweets[-1].id - 1
|
||||
|
||||
# keep grabbing tweets until there are no tweets left to grab
|
||||
while len(new_tweets) > 0:
|
||||
print(f"getting tweets before {oldest}")
|
||||
|
||||
# all subsequent requests use the max_id param to prevent duplicates
|
||||
new_tweets = api.user_timeline(
|
||||
screen_name=screen_name, count=200, max_id=oldest
|
||||
)
|
||||
|
||||
# save most recent tweets
|
||||
alltweets.extend(new_tweets)
|
||||
|
||||
# update the id of the oldest tweet less one
|
||||
oldest = alltweets[-1].id - 1
|
||||
|
||||
print(f"...{len(alltweets)} tweets downloaded so far")
|
||||
|
||||
# transform the tweepy tweets into a 2D array that will populate the csv
|
||||
outtweets = [[tweet.id_str, tweet.created_at, tweet.text] for tweet in alltweets]
|
||||
|
||||
# write the csv
|
||||
with open(f"new_{screen_name}_tweets.csv", "w") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow(["id", "created_at", "text"])
|
||||
writer.writerows(outtweets)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# pass in the username of the account you want to download
|
||||
get_all_tweets("FirePing32")
|
Reference in New Issue
Block a user