Adding in script to fetch tweets

This commit is contained in:
Lucas Oskorep
2020-04-29 15:43:14 -05:00
parent 9c1e4caa91
commit 2a413b6fcb
2 changed files with 74 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
# import twitter as tw
import os
import csv
import tweepy
import datetime
from pprint import pprint
from dotenv import load_dotenv
load_dotenv()
consumer_key = os.getenv('CKEY', '0')
consumer_secret = os.getenv('CSECRET', '0')
access_token = os.getenv('ATOKEN', '0')
access_token_secret = os.getenv('ASECRET', '0')
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
def save_hashtag_to_csv(hashtag, days, file):
csvFile = open(file, 'w', newline='', encoding='utf8')
csvWriter = csv.writer(csvFile)
print(os.path.getsize(file))
if os.path.getsize(file) ==0:
csvWriter.writerow(
[
"tweet.id",
"tweet.created_at",
"tweet.text",
"tweet.user.name",
"tweet.user.screen_name",
"tweet.user.location",
"tweet.user.id",
"tweet.user.followers_count",
"tweet.user.friends_count",
"tweet.user.favourites_count",
"tweet.user.description"
]
)
csvFile.flush()
print("CSVWRITER WROTE THE ROW")
base = datetime.date.today()+ datetime.timedelta(days=1)
for day in [base - datetime.timedelta(days=x) for x in range(days)]:
print(str(day), str(day - datetime.timedelta(days=1)))
for tweet in tweepy.Cursor(
api.search,
q=hashtag,
lang="en",
until=str(day),
since=str(day- datetime.timedelta(days=1)),
result_type= "mixed").items(100):
print(tweet.created_at, tweet.text)
csvWriter.writerow(
[
tweet.id,
tweet.created_at,
tweet.text.replace('\n', ' ').replace('\r', ''),
tweet.user.name,
tweet.user.screen_name,
tweet.user.location,
tweet.user.id,
tweet.user.followers_count,
tweet.user.friends_count,
tweet.user.favourites_count,
tweet.user.description.replace('\n', ' ').replace('\r', '')
]
)
save_hashtag_to_csv("#covid", 7, "data/covid.csv")
save_hashtag_to_csv("#quarantine", 7, "data/quarantine.csv")
+1
View File
@@ -3,3 +3,4 @@ import nltk as nltk
import numpy as np
import pandas as pd
import twitter as tw
from xml import sax