Cesta planteada. Datetime no funciona

parent 991057a0
class Cesta:
def __init__(self, registros):
# Atributos
self.sesion = None
self.pagina = None
self.directorios = None
self.transformarCesta(registros)
# Se obtienen los directorios con mas del 0.5 peticiones de pagina junto a sus paginas
def transformarCesta(self, registros):
umbral = int(len(registros) * 5 / 1000)
self.directorios = obtenerDirectorios(registros, umbral)
def obtenerDirectorios(registros, umbral):
directorios = []
contadores = []
for r in registros:
if r.url not in directorios:
directorios.append(r.url)
contadores.append(1)
else:
pos = contadores.index(r.url)
contadores[pos] += 1
return directorios, contadores
...@@ -22,6 +22,7 @@ class Dato: ...@@ -22,6 +22,7 @@ class Dato:
# Se obtienen todos los datos # Se obtienen todos los datos
self.obtenerDatos(cadena) self.obtenerDatos(cadena)
# Funcion que asigna los valores debidos a la clase # Funcion que asigna los valores debidos a la clase
def obtenerDatos(self, cadena): def obtenerDatos(self, cadena):
# Auxiliares, iterador y cadena vacia # Auxiliares, iterador y cadena vacia
...@@ -37,13 +38,38 @@ class Dato: ...@@ -37,13 +38,38 @@ class Dato:
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 += 1
# Obtenemos estado del código, volumen de tranferencia y calculamos marca de tiempo # Obtenemos estado del código, volumen de tranferencia y calculamos marca de tiempo
self.statusCode, c = sacarLinea(cadena, c, aux, ' ') self.statusCode, c = sacarLinea(cadena, c, aux, ' ')
self.volumenTransf, c = sacarLinea(cadena, c, aux, ' ') self.volumenTransf, c = sacarLinea(cadena, c, aux, ' ')
self.marcaTiempo = int(datetime.now().timestamp() - self.fecha.timestamp())
fechaRegistro = int(self.fecha.timestap())
fechaBase = int(datetime.strptime("01/01/1995:00:00:00", '%d/%m/%Y:%H:%M:%S').timestamp())
self.marcaTiempo = int(fechaRegistro - fechaBase)
# Se consideran valores erroneos, anomalos o nulos para descartarse este dato (se ignora
def isPerdido(self):
if self.hostRemoto is None:
return True
if self.fecha is None:
return True
if self.metodoPeticion is None:
return True
if self.url is None:
return True
if self.vProtocolo is None:
return True
if self.statusCode is None:
return True
if self.volumenTransf is None:
return True
if self.marcaTiempo is None:
return True
if self.marcaTiempo < 0:
return True
return False
# Lee lineas del fichero # Lee lineas del fichero
def leerLinea(cadena, c, signo): def leerLinea(cadena, c, signo):
...@@ -74,7 +100,7 @@ def leerFecha(cadena, c, aux): ...@@ -74,7 +100,7 @@ def leerFecha(cadena, c, aux):
# Cambia el mes en la fecha por el número que le corresponde # Cambia el mes en la fecha por el número que le corresponde
def modificarFecha(cadena): def modificarFecha(cadena):
meses = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] meses = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
numeros = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"] numeros = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]
mes = "" mes = ""
numero = "" numero = ""
......
from ObtencionRegistro import obtenerRegistros from ObtencionRegistro import obtenerRegistros
from Cesta import Cesta
# Se crean los registros, identificando usuarios y sesiones # Se crean los registros, identificando usuarios y sesiones
r = obtenerRegistros("../access_log_Aug95_reducido", True, [], []) r = obtenerRegistros("../access_log_Aug95_reducido", True, [], [])
# c = Cesta(r)
# Se muestran resultados log # Se muestran resultados log
informe = ( informe = (
......
...@@ -16,13 +16,13 @@ def obtenerRegistros(ruta, espidering, extensionesAdmitidas, extensionesNoAdmiti ...@@ -16,13 +16,13 @@ def obtenerRegistros(ruta, espidering, extensionesAdmitidas, extensionesNoAdmiti
# Obtengo los registros # Obtengo los registros
def leerLog(ruta, extensionesAdmitidas, extensionesNoAdmitidas): def leerLog(ruta, extensionesAdmitidas, extensionesNoAdmitidas):
ret = [] ret = []
# Leo el fichero # Leo el fichero
f = open(ruta, "r") f = open(ruta, "r")
for linea in f: for linea in f:
try: try:
aux = Dato(linea) aux = Dato(linea)
ret = obtenerDato(ret, extensionesAdmitidas, extensionesNoAdmitidas, aux) if not aux.isPerdido(): # Si no es un valor perdido lo incluimos en los registros
ret = obtenerDato(ret, extensionesAdmitidas, extensionesNoAdmitidas, aux)
finally: finally:
continue continue
f.close() f.close()
......
No preview for this file type
# Asignamos un umbral para asignar nuevas sesiones a los usuarios # Asignamos un umbral para asignar nuevas sesiones a los usuarios
UMBRAL_SESIONES = 2 UMBRAL_SESIONES = 1800
# Identifica a los usuarios con un unico ID para cada usuario # Identifica a los usuarios con un unico ID para cada usuario
......
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