Arreglado filtrado y leerFichero()

parent d52e50f4
......@@ -31,7 +31,7 @@ class Dato:
# Obtenemos modo de petición, url y protocolo
c = leerLinea(cadena, c, '"')
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, '"')
c += 2
......
from Dato import Dato
# Realiza
# Quita las entradas que pertenecen arañas, bots o crawler
def eSpidering(reg):
aQuitar = ["spider", "bot", "crawler"]
c = 0
......@@ -41,66 +41,45 @@ def ordenaRegistros(reg, aux):
# Lee el fichero log
def leerFicheroLog(ruta, espidering, extensiones, valor):
# 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):
def leerFicheroLog(ruta, espidering, extensionesAdmitidas, extensionesNoAdmitidas):
ret = []
#Leo el fichero
f = open(ruta, "r")
total = 0
for linea in f:
total += 1
try:
aux = Dato(linea)
admitido = valor
for ext in extensiones:
#Obtengo el dato
aux=Dato(linea)
#Compruebo si el dato pertenece a una extension NO admitida
admitir=True
for ext in extensionesNoAdmitidas:
if ext in aux.url:
admitido = not valor
if admitido:
ret.append(aux)
admitir=False
#Si no se corresponde con ninguna extension NO admitida, compruebo si hay que filtrar con las admitidas
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:
continue
f.close()
#Compruebo si hay que hacer el e-Spidering
if espidering:
ret=eSpidering(ret)
print("Procesados ",len(ret), "registros")
return ret
# 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 = identificacionUsuarios(registros)
registros = leerFicheroLog("../access_log_Aug95_reducido", True, [], [])
#registros = identificacionUsuarios(registros)
informe = ("Host Remoto: {}. Marca de tiempo: {}")
print("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