DivisionGestor

parent f1336a67
......@@ -79,12 +79,4 @@ def modificarFecha(cadena):
mes = i
numero = numeros[meses.index(i)]
return cadena.replace(mes, numero)
# Comprobación
# p = Dato(
# "in24.inetnebr.com - - [01/Aug/1995:00:00:01 -0400] \"GET /shuttle/missions/sts-68/news/sts-68-mcc-05.txt HTTP/1.0\" 200 1839")
# informe = ('Host Remoto: {}\nFecha: {}\nMétodo de Petición: {}\nProtocolo: {}\nstatusCode: {}\nVolumen de transferencia: {}\n'
# 'Marca de tiempo: {}\n')
# print(informe.format(p.hostRemoto, p.fecha, p.metodoPeticion, p.vProtocolo, p.statusCode, p.volumenTransf, p.marcaTiempo))
\ No newline at end of file
return cadena.replace(mes, numero)
\ No newline at end of file
from Dato import Dato
from IdentificacionUsuarios import IdentificacionUsuarios
from ObtencionRegistro import ObtencionRegistro
registros = ObtencionRegistro("../access_log_Aug95_reducido", True, [], [])
idUsuarios = IdentificacionUsuarios(registros.registro)
informe = ("Host Remoto: {}. Url: {}")
# Quita las entradas que pertenecen arañas, bots o crawler
def eSpidering(reg):
aQuitar = ["spider", "bot", "crawler"]
c = 0
for r in reg:
for q in aQuitar:
if q in r.hostRemoto.lower():
reg.pop(c)
c += 1
return reg
# Identifica a los usuarios
def identificacionUsuarios(reg):
aux = []
for r in reg:
aux.append(r.hostRemoto)
return ordenaRegistros(reg, aux)
# Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos
def ordenaRegistros(reg, aux):
ret = []
for usuario in aux:
con = []
for r in reg:
if r.hostRemoto == usuario:
con.append(r)
# Ordeno
for i in range(len(con)):
for j in range(len(con)):
if con[i].marcaTiempo > con[j].marcaTiempo:
con[i], con[j] = con[j], con[i]
ret += con
return ret
# Lee el fichero log
def leerFicheroLog(ruta, espidering, extensionesAdmitidas, extensionesNoAdmitidas):
ret = obtenerRegistros(ruta, extensionesAdmitidas, extensionesNoAdmitidas)
# Compruebo si hay que hacer el e-Spidering
if espidering:
ret = eSpidering(ret)
print("Procesados ", len(ret), "registros")
return ret
# Obtengo los registros
def obtenerRegistros(ruta, extensionesAdmitidas, extensionesNoAdmitidas):
ret = []
# Leo el fichero
f = open(ruta, "r")
for linea in f:
try:
aux = Dato(linea)
ret = obtenerDato(ret, extensionesAdmitidas, extensionesNoAdmitidas, aux)
finally:
continue
f.close()
return ret
# Obtengo el dato de los registros dependiendo de qué extensiones procede
def obtenerDato(ret, extensionesAdmitidas, extensionesNoAdmitidas, aux):
# Compruebo si el dato pertenece a una extension NO admitida
admitir = True
for ext in extensionesNoAdmitidas:
if ext in aux.url:
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)
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, [], [])
# # registros = identificacionUsuarios(registros)
# informe = ("Host Remoto: {}. Url: {}")
#
# print("Registros:")
# for i in registros:
# print(informe.format(i.hostRemoto, i.url))
print("Registros:")
for i in registros.registro:
print(informe.format(i.hostRemoto, i.url))
# Se obtienen la identificacion de los usuarios
class IdentificacionUsuarios:
def __init__(self, reg):
self.identificacionUsuarios = identificacion(reg)
# Identifica a los usuarios
def identificacion(reg):
aux = []
for r in reg:
aux.append(r.hostRemoto)
return ordenaRegistros(reg, aux)
# Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos
def ordenaRegistros(reg, aux):
ret = []
for usuario in aux:
con = []
for r in reg:
if r.hostRemoto == usuario:
con.append(r)
# Ordeno
for i in range(len(con)):
for j in range(len(con)):
if con[i].marcaTiempo > con[j].marcaTiempo:
con[i], con[j] = con[j], con[i]
ret += con
return ret
from Dato import Dato
# Se obtiene el registro
class ObtencionRegistro:
def __init__(self, ruta, spidering, extensionesAdmitidas, extensionesNoAdmitidas):
self.registro = leerFicheroLog(ruta, spidering, extensionesAdmitidas, extensionesNoAdmitidas)
# Lee el fichero log
def leerFicheroLog(ruta, espidering, extensionesAdmitidas, extensionesNoAdmitidas):
ret = obtenerRegistros(ruta, extensionesAdmitidas, extensionesNoAdmitidas)
# Compruebo si hay que hacer el e-Spidering
if espidering:
ret = eSpidering(ret)
print("Procesados ", len(ret), "registros")
return ret
# Obtengo los registros
def obtenerRegistros(ruta, extensionesAdmitidas, extensionesNoAdmitidas):
ret = []
# Leo el fichero
f = open(ruta, "r")
for linea in f:
try:
aux = Dato(linea)
ret = obtenerDato(ret, extensionesAdmitidas, extensionesNoAdmitidas, aux)
finally:
continue
f.close()
return ret
# Obtengo el dato de los registros dependiendo de qué extensiones procede
def obtenerDato(ret, extensionesAdmitidas, extensionesNoAdmitidas, aux):
# Compruebo si el dato pertenece a una extension NO admitida
admitir = True
for ext in extensionesNoAdmitidas:
if ext in aux.url:
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)
return ret
# Quita las entradas que pertenecen arañas, bots o crawler
def eSpidering(reg):
aQuitar = ["spider", "bot", "crawler"]
c = 0
for r in reg:
for q in aQuitar:
if q in r.hostRemoto.lower():
reg.pop(c)
c += 1
return reg
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