On Github jorlugaqui / stella-slides
Implementado: Ing. Jorge Galvis Dirigido: Ing. Liliana Calderon
"""Quiero una aplicación que permita hacer clic en un botón y me muestre las tedencias comerciales de un sitio de comercio electrónico...""" Liliana Calderón.
AntecedentesProyecto enmarcado en el grupo de investigación en tecnologías de la información.
Antecedentes¿Ha podido observar tendencias comerciales con respecto a los productos que usualmente compra?
Problema¿Cómo determinar de forma automática las tendencias comerciales que surgen en sitios de comercio electrónico con presencia en Colombia?
ProblemaDeterminar de forma automática las tendencias comerciales que se registran en sitios de Comercio electrónico.
Una aplicación Web (crawler + GUI).
JustificaciónAutomatización en la identificación de tendencias.
JustificaciónSerá una aplicación de referencia.
JustificaciónDerechos de autor en soportes lógicos.
Marco legalCreative Commons 4.0 Internacional: Atribución, No Comercial, Compartir Igual.
Marco legalAGPL 3.0.
Marco legalWeb Scraping.
Marco legalFases para la implementación del proyecto
Método de la investigaciónMuestra de tiendas electrónicas
Método de la investigaciónCriterios de selección
Método de la investigaciónTécnicas de extracción
Método de la investigaciónMínimos Cuadrados.
Método de la investigaciónUbuntu Server 14.04 de 64 bits
HerramientasPostgreSQL Server 9.3
HerramientasMongoDB 2.4.9
HerramientasSupervisor 3.0
HerramientasPython 2.7.6
HerramientasDjango 1.7.1
HerramientasGunicorn 19.1.1
HerramientasNginx 1.4.6
HerramientasGunicorn 19.1.1
HerramientasScrapy/Numpy/Scipy
HerramientasEsquema de consulta Mercado Libre
https://api.mercadolibre.com
ResultadosEsquema de consulta Mercado Libre
ResultadosEsquema de consulta Mercado Libre
ResultadosEsquema de consulta eBay
http://svcs.ebay.com/services/search/FindingService/v1
ResultadosEsquema de consulta eBay
ResultadosEsquema de consulta eBay
ResultadosEsquema de consulta Amazon
http://webservices.amazon.com/onca/xm
ResultadosEsquema de consulta Amazon
ResultadosEsquema de consulta Amazon
ResultadosEsquema de consulta Linio
http://www.linio.com.co/tecnologia/telefonos
ResultadosEsquema de consulta Linio
http://www.linio.com.co/slug-del-product
ResultadosRepositorio de datos
ResultadosRepositorio de datos
ResultadosInterfaz de Listados
ResultadosInterfaz de Estadísticas
ResultadosInterfaz de Administración
ResultadosInterfaz de Administración
ResultadosRelación de modelos
ResultadosCódigo fuente y despliegue
http://172.245.180.180:8000/
https://github.com/jorlugaqui/stella
ResultadosDistribución de categorías
Sitio Cantidad Mercado Libre 24 Ebay 35 Linio 53 (8) Amazon 39 ResultadosAplicación
ResultadosNube de categorías 23-01-2015
ResultadosNube de categorías 24-01-2015
ResultadosRelevancia 24-01-2015
ResultadosNube de categorías 25-01-2015
ResultadosNube de categorías 26-01-2015
ResultadosProyección de precios
ResultadosProyección de ventas
ResultadosProyección de inventario
ResultadosTendencias
ResultadosTendencias - Precios
ResultadosTendencias - Ventas
ResultadosTendencias - Inventario
ResultadosTendencias - Precios - Comparación
ResultadosTendencias - Ventas - Comparación
ResultadosTendencias - Inventario - Comparación
ResultadosInstalar la aplicación en un servidor GNU/Linux, de preferencia Debian (https://www.debian.org/) o Ubuntu (http://www.ubuntu.com/), con una RAM mínima de 2 GB y un disco duro mínimo de 15 GB, con uno o más procesadores por encima de los 1.2 GHz y un ancho de banda mínimo de 512MB mensuales.
RecomendacionesProgramar las tareas de recolección de datos por un periodo superior a 10 días y no mayor a 30, de modo que el método de los mínimos cuadrados tenga suficiente lecturas sobre las cuales pueda operar y a su vez no se genere tráfico innecesario en el sitio objetivo.
RecomendacionesPreferiblemente agregar sitios Web que cuenten con APIs de consulta.
RecomendacionesImplementar un script de extracción por cada nuevo sitio agregado.
RecomendacionesSubir al repositorio del proyecto (https://github.com/jorlugaqui/stella) las mejoras que el lector haya implementado.
RecomendacionesAgregar contexto al tiempo de lecturas.
Trabajos futurosEstablecer notificaciones por categorías.
Trabajos futurosAgregar más plataformas de comercio electrónico.
Trabajos futurosAplicar más métodos estadísticos a las lecturas obtenidas.
Trabajos futurosMejoras en la capa de presentación.
Trabajos futurosVolver totalmente administrable la agregación de plataformas.
Trabajos futurosContacto con las plataformas agregadas.
Trabajos futurosEs posible hacer seguimiento de productos de forma automática desde tiendas electrónicas, pero este seguimiento está sujeto a variables como: términos de uso de los sitios Web, herramientas de consulta que ofrezca la tienda y calidad de publicación de ofertas a nivel DOM/HTML.
ConclusionesCada plataforma de comercio electrónico tiene una estructura de funcionamiento distinta, que se ve reflejada en la forma como publican sus ofertas, tanto a nivel de HTML como a nivel de sus respectivas APIs.
ConclusionesLas plataformas de comercio electrónico eBay, Amazon y Mercado Libre ofrecen APIs que permiten la consulta de datos asociados a los productos que ofertan en sus Sitios Web, estas APIs son heterogéneas, dependiendo de la plataforma varía su forma de funcionamiento (campos mínimos para realizar una petición, campos devueltos, etc.).
ConclusionesEn Colombia no existen bases de datos públicas asociadas a las plataformas de comercio electrónico que operan en el país, solo a través de la inspección HTML y del uso de APIs se logra la extracción automática de datos.
ConclusionesEl diseño de scripts para la extracción de datos se debe realizar con la premisa de no sobrecargar con peticiones a los sitios objetivos, ya que usos indebidos pueden generar tráfico innecesario y penalizaciones a los dominios desde donde estos se ejecutan.
ConclusionesLa técnica del Web Scraping es ideal para la extracción de datos desde sitios Web, pero siempre que exista una API en el sitio objetivo es mejor hacer uso de esta.
ConclusionesEstablecer tendencias comerciales sin el acceso directo a las bases de datos donde se almacenan las transacciones es una tarea compleja, sin embargo, desde los datos publicados por las tiendas electrónicas en sus sitios Web o APIs, se pueden establecer comportamientos que evidencien estas tendencias.
Conclusiones