Arreglado filtrado y leerFichero()

parent d52e50f4
...@@ -31,7 +31,7 @@ class Dato: ...@@ -31,7 +31,7 @@ class Dato:
# Obtenemos modo de petición, url y protocolo # Obtenemos modo de petición, url y protocolo
c = leerLinea(cadena, c, '"') c = leerLinea(cadena, c, '"')
self.metodoPeticion, c = sacarLinea(cadena, c, aux, ' ') self.metodoPeticion, c = sacarLinea(cadena, c, aux, ' ')
self.URL, c = sacarLinea(cadena, c, aux, ' ') self.url, c = sacarLinea(cadena, c, aux, ' ')
self.vProtocolo, c = sacarLinea(cadena, c, aux, '"') self.vProtocolo, c = sacarLinea(cadena, c, aux, '"')
c += 2 c += 2
......
from Dato import Dato from Dato import Dato
# Realiza # Quita las entradas que pertenecen arañas, bots o crawler
def eSpidering(reg): def eSpidering(reg):
aQuitar = ["spider", "bot", "crawler"] aQuitar = ["spider", "bot", "crawler"]
c = 0 c = 0
...@@ -41,66 +41,45 @@ def ordenaRegistros(reg, aux): ...@@ -41,66 +41,45 @@ def ordenaRegistros(reg, aux):
# Lee el fichero log # Lee el fichero log
def leerFicheroLog(ruta, espidering, extensiones, valor): def leerFicheroLog(ruta, espidering, extensionesAdmitidas, extensionesNoAdmitidas):
# Obtiene los registros con las extensiones deseadas si se indica
if extensiones is None:
registros = obtenerRegistros(ruta)
else:
registros = manipularFiltradas(ruta, extensiones, valor)
# Si se ha pedido spidering, se realiza
if espidering:
registros = eSpidering(registros)
print("Procesados ", len(registros), " registros")
return registros
# Obtenemos los registros de la ruta cuando no se manipulan extensiones
def obtenerRegistros(ruta):
ret = []
f = open(ruta, "r")
total = 0
for linea in f:
total += 1
try:
ret.append(Dato(linea))
except:
continue
f.close()
return ret
# Obtiene los registros manipulando las extensiones
def manipularFiltradas(ruta, extensiones, valor):
ret = [] ret = []
#Leo el fichero
f = open(ruta, "r") f = open(ruta, "r")
total = 0 total = 0
for linea in f: for linea in f:
total += 1 total += 1
try: try:
aux = Dato(linea) #Obtengo el dato
admitido = valor aux=Dato(linea)
for ext in extensiones: #Compruebo si el dato pertenece a una extension NO admitida
admitir=True
for ext in extensionesNoAdmitidas:
if ext in aux.url: if ext in aux.url:
admitido = not valor admitir=False
if admitido: #Si no se corresponde con ninguna extension NO admitida, compruebo si hay que filtrar con las admitidas
ret.append(aux) if admitir:
if(len(extensionesAdmitidas)==0):
ret.append(aux)
else:
#Filtro con las admitidas
for ext in extensionesAdmitidas:
if ext in aux.url:
ret.append(aux)
except: except:
continue continue
f.close() f.close()
#Compruebo si hay que hacer el e-Spidering
if espidering:
ret=eSpidering(ret)
print("Procesados ",len(ret), "registros")
return ret return ret
# Se leen los ficheros con spidering, sin extensiones, el ultimo valor da igual (V o F) si no hay extensiones # Se leen los ficheros con spidering, sin extensiones, el ultimo valor da igual (V o F) si no hay extensiones
registros = leerFicheroLog("../access_log_Aug95_reducido", True, None, None) registros = leerFicheroLog("../access_log_Aug95_reducido", True, [], [])
registros = identificacionUsuarios(registros) #registros = identificacionUsuarios(registros)
informe = ("Host Remoto: {}. Marca de tiempo: {}") informe = ("Host Remoto: {}. Marca de tiempo: {}")
print("Registros:") print("Registros:")
for i in registros: for i in registros:
print(informe.format(i.hostRemoto, i.marcaTiempo)) print(informe.format(i.hostRemoto, i.url))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment