| import streamlit as st |
| from extract import take_webdata, get_vehicle_info |
| from PIL import Image |
| from io import BytesIO |
|
|
| def main(): |
| st.title("Website Content Exctractor") |
| |
| |
| url = st.text_input("Masukkan Nopol:", "") |
| if st.button("Proceed"): |
| if not url: |
| st.warning("Nopol kosong.") |
| else: |
| visualize(url) |
| |
|
|
| def visualize(url): |
| try: |
| |
| with st.spinner("loading website data ..."): |
| |
| |
| html_image, html_content, data = get_vehicle_info(url) |
| st.subheader("Website title:") |
| if html_content: |
| st.info(html_content) |
| else: |
| st.error("Error: empty html content") |
| st.subheader("Website preview:") |
| if html_image: |
| st.image(html_image) |
| else: |
| st.error("Error: empty html preview") |
|
|
| data_kendaraan, total_tagihan, rincians_pkb, rincians_swd = data |
|
|
| st.json( |
| { |
| "data_kendaraan":data_kendaraan, |
| "total_tagihan":total_tagihan, |
| "rincian_pkb":[x for x in rincians_pkb if any(x.values())], |
| "rincian_swd":[x for x in rincians_swd if any(x.values())] |
| } |
| ) |
| |
| |
| except Exception as e: |
| st.error(f"Error: {e}") |
|
|
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|