Expresiones regulares
Adrian Ferreres Esteller
raro82 en hotmail.com
Mie Mayo 18 10:47:33 CEST 2005
Ceritium escribio:
Tal vez la cuestion sea como organizar el indize, yo personalmente ( y
sin haber hecho esto nunca antes) examinaria la pagina, cogeria todas
las palabras y las meteria en un indice, y a cada palabra le asociaria
esa web, luego para la sigueinte paginas cogeria todas las palabras y
a las ya existentes tambien le asociaria esa web y con los que no pos
las añadiria e igual.
Luego en otra tabla con las wbes indexadas les pondria algun dato que
me indexase el orden.
Asi luego en la busqueda no seria tan pesado en mi opinión.
Esto es lo que voy a hacer. Pero la pregunta es ¿cuantas paginas puedo
alamecenar en mi ordenador de esta manera? Tu piensa que, apesar de que
esto es para aprobar la penultima asignatura de mi carrera, el buscador
tiene que funcionar en mi PC que no en un mega cluster conectado con mil
disco duros etc... La idea es reducir al minimo el espacio y la lineas de la
base de datos. Por eso selecciona las palabras que estan en negrita, que
tiene los enlaces o que estan en cabeceras y ademas descrimino palabras
carentes de significado por si mismas como "el", "la", "los", "a", "ante",
"por", etc.....
Además pienso que no me voy de mucho porque una persona no destacaria
ninguna palabra en su página web si no fuera bastante significativa en
cuanto a su tematica se refiere.
Hernan Martinez escribio:
a simple vista no parece haber nada raro. pero no das muchas
precisiones sobre como estás construyendo las expregs ni como
las estas usando. por ejemplo, ¿tienes en cuenta que las
expregs son "glotonas" (devuelven el resultado mayor)
además ¿cómo resuelves la anidación (una tabla dentro de otra
dentro de otra y así)? ¿y que los tags en html pueden incluir
varias lineas?
ojo... te lo digo x experiencia las expregs para filtrar html
son engañosas, "been there done that", al principio
parece que funcionan con un par de ejemplos pero luego la vida
se te complica mas y mas al tratar páginas reales.
te será mas fácil con un parser de html y aun así no será
sencillo (¿que hacer con los scripts embebidos?)
Con lo de contruir las expresiones no se muy bien a que te refieres. Yo
utilizo la libreria de python re.
Ejemplo:
expr="<b>.+</b>"
mi_expr=re.compile (expr)
En cuanto a si considero que pueden haber etiquetas anidadas y eso pues la
verdad todavia no me lo habia planteado. La idea era coger toda la linea y
trabajar con ella luego eliminando todas las etiquetas que supuestamente
estan contenidas entre los caracteres "<" y ">" para quedarme solamente con
las palabras.
Lo de los intro y espaciones en blanco supuestamente tambien esta tomado en
consideracion en las expresiones anteriores pues el signo "." incluye
tambien los caracteres "\r \n" que es el de intro y todos los demas
Y, diculpando mi ignorancia, ¿que es un parse html? ¿Donde puedo encontra
manuales para que me enseñen a usarlo?
Si este camino que tomo es muy complicado ¿alguien me puede indicar otra
manera de hacer los mismo mas facil?
Muchas gracias a todos
Más información sobre la lista de distribución Python-es