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