def __init__(self, log):
        fecha = str(datetime.today().strftime('%Y%m%d'))
        ruta = "../ProxiesList/" + fecha
        ruta_proxies = ruta + "/" + fecha + "_listaProxies"
        ruta_paginas = ruta + "/" + fecha + "_paginasProxies"
        #0.Declaracion de variables
        extension = "csv"

        #1.Importamos el DataFrame de proxies
        if os.path.exists(ruta) == False:
            log.info(
                "Proceso: ProxyProvider init||Mensaje: inicializando lista proxies"
            )
            self.proxyDf = pd.DataFrame(
                columns=['CADENA', 'ESTADO', 'SITUACION'])
            self.paginasDf = pd.DataFrame(columns=['PAGINA'])
            self.importar(ruta, ruta_proxies, ruta_paginas, log)
            log.info(
                "Proceso: ProxyProvider init||Mensaje: Lista proxies inicializada"
            )
        else:
            log.info(
                "Proceso: Proxies init||Mensaje: inicializando lista proxies")
            self.proxyDf = Import.fichero(ruta_proxies, extension, log)
            self.paginasDf = Import.fichero(ruta_paginas, extension, log)
            log.info(
                "Proceso: ProxyProvider init||Mensaje: Lista proxies inicializada"
            )

#2.Inicializacion del socket
        self.socketInitialize(log)

        #3.Conexion al puerto
        self.connect(log)

        #4.Listening
        self.listen(1, log)  #una conexion de momento
        while True:
            #Wait for a connection
            connection, client_address = self.sock.accept()
            try:
                data = self.receive(connection)
                p = self.unpickleObject(data, log)
                if p.cadena == "":
                    proxy = None
                else:
                    proxy = p
                proxy = self.darProxy(ruta, ruta_proxies, ruta_paginas, log,
                                      proxy)
                data = self.pickleObject(proxy, log)
                self.send(connection, data, log)
            finally:
                self.disconnect(connection, log)
Exemplo n.º 2
0
        else:
            log.error(
                "Proceso: Orquestador||Mensaje: La web indicada no existe||Error: "
                + str(e))
            sys.exit()

        #2.1 Nombramiento de fichero de entrada y salida
        if item == 'Arbol':
            fichero_input = path_entrada + "/" + web + transaccion + tipologia
            fichero_output = path_resultados + "/" + fecha + "_Resultados_" + web + "_" + transaccion + "_" + tipologia + "_" + item
        elif item == 'Inmuebles':
            fichero_input = path_entrada + "/" + fecha + "_arbol_" + web + "_" + transaccion + "_" + tipologia
            fichero_output = path_resultados + "/" + fecha + "_Resultados_" + web + "_" + transaccion + "_" + tipologia + "_" + item
        elif item == 'Bancos':
            fichero_input = path_entrada + "/" + fecha + "arbol_" + web + "_" + transaccion + "_" + tipologia + "_bancos"
            fichero_output = path_resultados + "/" + fecha + "_Resultados_" + web + "_" + transaccion + "_" + tipologia + "_" + item
        else:
            log.error(
                "Proceso: Orquestador||Mensaje: El item seleccionado no existe.Por favor selecciono entre [Arbol,Inmuebles,Bancos]"
            )
            sys.exit()

        #2.2 Creacion de lista a partir del fichero importado y creacion de lista de salida
        lista_input = Import.fichero(fichero_input, "csv", log)
        lista_input = manager.list(lista_input)
        resultados = manager.list(resultados)

        #2.3 Lanzamiento multiproceso en funcion del item seleccionado
        lanzarScraper(web, item, url_base, diccionario, lista_input,
                      resultados, lock)