|
|
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) |
|
|
|
|
|
|
|
|
time.sleep(8) |
|
|
|
|
|
page_source = driver.page_source |
|
|
driver.quit() |
|
|
|
|
|
|
|
|
with st.expander("Lihat Source HTML (klik untuk membuka)"): |
|
|
st.code(page_source[:3000] + "...", language="html") |
|
|
|
|
|
|
|
|
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.") |
|
|
|