ISL / src /streamlit_app.py
sintamar's picture
Update src/streamlit_app.py
de68bed verified
import streamlit as st
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
import time
st.set_page_config(page_title="Klasemen Liga 1 - Flashscore", layout="wide")
st.title("🏆 Klasemen Liga 1 Indonesia (via Flashscore)")
st.markdown("Data diambil secara langsung menggunakan **headless browser (Selenium)**.")
url = "https://www.flashscore.co.id/sepak-bola/indonesia/super-league/peringkat/#/QqIn9e16/peringkat/keseluruhan/"
if st.button("🔄 Ambil Data Klasemen"):
st.info("Sedang memuat halaman Flashscore... harap tunggu 5–10 detik ⏳")
try:
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--window-size=1920,1080")
chrome_options.add_argument("--disable-gpu")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
driver.get(url)
# tunggu JavaScript selesai
time.sleep(8)
page_source = driver.page_source
driver.quit()
# tampilkan hasil HTML
with st.expander("Lihat Source HTML (klik untuk membuka)"):
st.code(page_source[:3000] + "...", language="html")
# tampilkan langsung di browser
st.components.v1.html(page_source, height=900, scrolling=True)
except Exception as e:
st.error(f"Terjadi kesalahan: {e}")
else:
st.write("Tekan tombol di atas untuk memuat data klasemen.")