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)
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)