import streamlit as st import pandas as pd import twint import nest_asyncio # Function to make this easy for ourselves: def get_tweets(username, limit=500, save_name=None): #nest_asyncio.apply() # Helps avoid RuntimeError: This event loop is already running # Setup config c = twint.Config() # Create a config object to store our settings c.Limit = limit # Max number of tweets to fetch (increments of 20) c.Username = username # User of interest c.Pandas = True # Store tweets in a dataframe c.Hide_output = True # Avoid printing out tweets # Run the seearch twint.run.Search(c) # Get the results and optionally save to a file as well df = twint.storage.panda.Tweets_df if save_name != None: df.to_csv(save_name) return df st.title('Test') with st.form("my_form"): st.write("Inside the form") user = st.text_input("Twitter Username") n_tweets = st.slider('How Many Tweets', 20, 2000, 20) # Every form must have a submit button. submitted = st.form_submit_button("Submit") if submitted: st.write("Fetching user", user, "n_tweets", n_tweets) tweets = get_tweets(user, limit=n_tweets) st.write(st.dataframe(tweets.head())) st.write("Outside the form")