# -*- coding: utf-8 -*- import streamlit as st import pandas as pd import base64 from pyxlsb import open_workbook as open_xlsb from datetime import datetime from funcs import extrae_dato_web, extrae_web, extrae_alternate, convierte_excel import bs4 as BeautifulSoup import urllib.request from urllib.request import urlopen, Request import re c1, c2 = st.columns([6,6]) with c2: st.image('encopartslogo.jpg', width=300, caption='https://encoparts.com/') rutas_websearch = ['https://en.hespareparts.com/search/?search=', 'https://offroadeq.com/parts-search/'] st.title('Generación de Tablas de Datos de Extracción') st.subheader('Carga de Datos') selec = st.radio('Seleccione: ', [None, 'Carga por Texto con Comas', 'Carga por Archivo Excel']) items = None if selec is None: st.write('Por favor seleccione una opción válida de carga.') else: if selec == 'Carga por Texto con Comas' and items is None: st.write(selec) codigos = st.text_input('Escriba o peque aqui texto separando los códigos por comas: ') if st.button('Proceder'): items = list(codigos.split(',')) else: st.write(selec) file = st.file_uploader('Seleccione un archivo: ') if file is not None: codigosf = pd.read_excel(file) st.write('Filas, Columnas de Data de Prueba: ', codigosf.shape) namcol = codigosf.columns[0] items = pd.Series(codigosf[namcol]).astype(str) if selec is not None and items is not None: st.write(items) datos_tot = [] st.write('Por favor espere mientas se extrae datos...') for it in items: extrae_med = extrae_web(it) extrae_dat = extrae_dato_web(it) itxx = it[:-4]+'-'+it[-4:] datos = [it, itxx] + list(extrae_med) + list(extrae_dat) datos_tot.append(datos) dtdf = pd.DataFrame(datos_tot) dtdf.columns = ['part_no_', 'part_no', 'descrip_en', 'length_m', 'width_m', 'height_m', 'vol_m3', 'compatible', 'alternate', 'precio_bm_us', 'peso_lb', 'descr'] now = datetime.now() date_time = now.strftime("%m/%d/%Y, %H:%M:%S").replace('/','_').replace(':','_').replace(', ', '_') dtdf['peso_kg'] = dtdf.peso_lb*0.453592 dtdf2 = dtdf[['part_no_', 'part_no', 'descr', 'length_m', 'width_m', 'height_m', 'vol_m3', 'peso_kg', 'precio_bm_us', 'alternate', 'compatible']] df_xlsx = convierte_excel(dtdf2) st.download_button(label='📩 Descargar XLSX', data=df_xlsx, file_name = 'df_'+date_time+'.xlsx') csv = dtdf2.to_csv(index=False) st.download_button(label='📩 Descargar CSV', data=csv, file_name = 'df_'+date_time+'.csv') else: st.write('Cuando seleccione la opción, por favor cargue datos y proceda.') c1, c2, c3 = st.columns([4,4,4]) with c3: st.image('gdmklogo.png', width=100, caption='Diseñado por GestioDinámica 2022')