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