Esempio n. 1
0
    def scrapearBusquedaSinCuenta(self, busqueda):

        print(
            f"[SCRAPER] Recuperando artículos de búsqueda '{busqueda.keywords}' del usuario {self.usuario.id_telegram}"
        )
        articulos_recuperados = self.recuperarArticulosWallapop(busqueda)

        gestorBBDD = GestorBBDD()

        for articulo in articulos_recuperados:
            # Si no está en la base de datos, no está estudiado para esta búsqueda.
            excluido = articulo.estaExcluido(busqueda)
            existe = gestorBBDD.existeArticulo(articulo.id_articulo,
                                               busqueda.id_busqueda)

            # Solo notifico
            if (not (excluido) and not (existe)):
                self.notificador.notificarAnuncio(self.usuario.id_telegram,
                                                  articulo, busqueda)

            # Finalmente, lo añado a la base de datos.
            gestorBBDD.insertarArticulo(articulo)
        print(
            f"[SCRAPER] Scrapeo de la búsqueda {busqueda.id_busqueda} del usuario {self.usuario.id_telegram} finalizado."
        )
Esempio n. 2
0
    def scrapearBusqueda(self, busqueda):

        print(
            f"[SCRAPER] Recuperando artículos de búsqueda '{busqueda.keywords}'"
        )
        articulos_recuperados = self.recuperarArticulosWallapop(busqueda)

        gestorBBDD = GestorBBDD()

        for articulo in articulos_recuperados:
            # Si no está en la base de datos, no está estudiado para esta búsqueda.
            excluido = articulo.estaExcluido(busqueda)
            existe = gestorBBDD.existeArticulo(articulo.id_articulo,
                                               busqueda.id_busqueda)

            if (not (excluido) and not (existe)):

                # Lo añado a la base de datos.
                gestorBBDD.insertarArticulo(articulo)

                # Si está activada la autocomparación, pues comparo.
                if (busqueda.comparar_automaticamente):

                    preciosArticulo = self.__extraerPreciosArticulo(
                        articulo, busqueda)
                    chollo = self.__esChollo(articulo, busqueda,
                                             preciosArticulo)

                    if (chollo):
                        print(
                            f"[SCRAPER] El usuario {self.usuario.id_telegram} ha encontrado un chollo: {articulo.titulo} - {articulo.precio} [{articulo.enlace}]"
                        )
                        self.notificador.notificarChollo(
                            self.usuario.id_telegram, articulo, busqueda)
                        if (busqueda.enviar_mensaje_auto):
                            self.enviarMensaje(articulo)
                    else:
                        print(
                            f"[SCRAPER] El usuario {self.usuario.id_telegram} ha analizado {articulo.titulo} - {articulo.precio}, pero no es un chollo..."
                        )
                # Si no está activada la autocomparación, solo notifico.
                else:
                    self.notificador.notificarAnuncio(self.usuario.id_telegram,
                                                      articulo, busqueda)
        print(
            f"[SCRAPER] Scrapeo de la búsqueda {busqueda.id_busqueda} del usuario {self.usuario.id_telegram} finalizado."
        )
Esempio n. 3
0
 def scrapeoInicial(self, busqueda):
     gestorBBDD = GestorBBDD()
     articulos = self.recuperarArticulosWallapop(busqueda)
     for articulo in articulos:
         if (not (articulo.estaExcluido(busqueda))):
             gestorBBDD.insertarArticulo(articulo)