Expresiones regulares

Adrian Ferreres Esteller raro82 en hotmail.com
Dom Mayo 15 12:41:52 CEST 2005


Hola a todos:

     ¿Os acordais de mi? soy el que esta desarrollando una araña web en 
python. La cosa es que, despues de hablarlo con mi profesor, la utilidad que 
le voy a dar a mi araña sera la de un motor de un buscador web. La idea es 
descargarse las paginas en el disco duro y crear una base de datos de 
paginas web donde los indices de acceso rapido son el contenido de dichas 
paginas. El problema es que para la capacidad de mi ordenador no creo que 
crear un indice en la base de datos de paginas web ordenadas por todas las 
palabras de su contenido sea inteligente asi que decidi ser selectivo. Solo 
clasificare las paginas web por las palabras que este dentro de las 
etiquetas de cabecera, de cabeza de tabla, en negrita, o que sirvan de link. 
Creo que la logica es sencilla: las palabras claves de una pagina, y por lo 
tanto las que marcan la tematica de la misma, son aquellas que estan 
destacadas. Para conseguir esto utilizo expresiones regulares:

         Una para capturar todas las etiquietas de titulos:
               <h[1-4>.+</h[1-4]>
        Otra para capturar las cabeceras de tablas:
              <th .*>.+</th>
        Otras para captura las negritas:
              <b>.+</b>
              <strong>.+</strong>
        Y la ultima para capturar las palabras de los links:
              <a .*>.+</a>


Para asegurarme que estas expresiones funcionaban cree una pagina web donde 
habia un tipo distinto de cada una de estas estiquetas y me encontre con la 
sorpresa de que la expresion regular <b>.+</b> me capturaba la siguiente 
linea:

     <th align=center>Ejemplo de cabecera de tabla</th>

Y me ignoraba la que tenia que coger:

     <b>Ejemplo de negrita1</b>

Mis preguntas son: ¿Que fallos tengo en la expresión regular de caputrar 
negrita? ¿Son estas expresiones regulares correctas para lo que busco 
conseguir?

Muchas gracias a todos




Más información sobre la lista de distribución Python-es