File size: 2,995 Bytes
b6c448a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# -*- 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')