removed unused script
This commit is contained in:
@@ -1,76 +0,0 @@
|
|||||||
# public packages
|
|
||||||
import snscrape.modules.twitter as sntwitter
|
|
||||||
from tqdm import tqdm
|
|
||||||
import time
|
|
||||||
# database-related
|
|
||||||
from database import Data_table, insert_list, get_all
|
|
||||||
from dotenv import load_dotenv
|
|
||||||
# own code
|
|
||||||
from clean_data import clean_content_df
|
|
||||||
from translate import translate
|
|
||||||
|
|
||||||
def run_snscrape():
|
|
||||||
# prepare lists to hold information
|
|
||||||
username_list = list()
|
|
||||||
timestamp_list = list()
|
|
||||||
content_list = list()
|
|
||||||
# begin scraping
|
|
||||||
query = '(Odense OR odense OR #odense OR #Odense) until:2022-12-17 since:2017-01-01 -filter:replies'
|
|
||||||
for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
|
|
||||||
# store information in lists
|
|
||||||
username_list.append(tweet.user.username)
|
|
||||||
timestamp_list.append(tweet.date)
|
|
||||||
content_list.append(tweet.content)
|
|
||||||
# when 100 tweets have been collected
|
|
||||||
if len(content_list) == 100:
|
|
||||||
# send data to database
|
|
||||||
insert_list(username_list, timestamp_list, content_list)
|
|
||||||
# empty lists
|
|
||||||
username_list = list()
|
|
||||||
timestamp_list = list()
|
|
||||||
content_list = list()
|
|
||||||
# check in on progress
|
|
||||||
if i % 100 == 0:
|
|
||||||
print(f'found {i} tweets')
|
|
||||||
|
|
||||||
def translate_content():
|
|
||||||
# load all content from database
|
|
||||||
print('loading data from database...')
|
|
||||||
df = get_all()
|
|
||||||
# remove already translated content
|
|
||||||
df = df[df['content_en'].isna()]
|
|
||||||
# clean content
|
|
||||||
print('cleaning content...')
|
|
||||||
content_clean_list, id_list = clean_content_df(df)
|
|
||||||
# translate content
|
|
||||||
print('translating content...')
|
|
||||||
with Data_table() as dt:
|
|
||||||
for id, content in tqdm(zip(id_list, content_clean_list), ascii=True, total=len(id_list)):
|
|
||||||
# translate content
|
|
||||||
try:
|
|
||||||
content_trans = translate(content)
|
|
||||||
except Exception:
|
|
||||||
print(f'error when translating content with id={id}')
|
|
||||||
continue
|
|
||||||
# transfer to database
|
|
||||||
try:
|
|
||||||
val_dict = {
|
|
||||||
'id': id,
|
|
||||||
'content_en': content_trans
|
|
||||||
}
|
|
||||||
query = (
|
|
||||||
f'UPDATE {dt._name} '
|
|
||||||
' SET content_en = (%(content_en)s) '
|
|
||||||
'WHERE id = (%(id)s) '
|
|
||||||
)
|
|
||||||
dt.execute(query, val_dict)
|
|
||||||
except Exception:
|
|
||||||
print(f'error when sending translated content to database: id={id}')
|
|
||||||
# take a break to avoid being banned by Google
|
|
||||||
time.sleep(2)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
load_dotenv()
|
|
||||||
# run_snscrape()
|
|
||||||
translate_content()
|
|
||||||
Reference in New Issue
Block a user