Tengo que analizar una serie de páginas web para importar datos en una aplicación. Cada tipo de página web proporciona el mismo tipo de datos. El problema es que el HTML de cada página es diferente, por lo que la ubicación de los datos varía. Otro problema es que el código HTML está mal formateado, por lo que es imposible utilizar un analizador similar a XML.¿Cómo se analiza un archivo HTML mal formateado?
Hasta el momento, la mejor estrategia que se me ocurre, es definir una plantilla para cada tipo de página, como:
Plantilla A:
<html>
...
<tr><td>Table column that is missing a td
<td> Another table column</td></tr>
<tr><td>$data_item_1$</td>
...
</html>
Plantilla B:
<html>
...
<ul><li>Yet another poorly formatted page <li>$data_item_1$</td></tr>
...
</html>
De esta forma solo necesitaría un analizador único para todas las páginas, que compararía cada página con su plantilla y recuperaría $data_item_1$
, $data_item_2$
, etc. Aún así, es va a ser mucho trabajo. ¿Puedes pensar en una solución más simple? Cualquier biblioteca que pueda ayudar?
Gracias
Estoy totalmente de acuerdo. Primero pásalo por Tidy. –
Algunas envolturas Tidy están disponibles aquí: http://users.rcn.com/creitzel/tidy.html –