Hay tantas html and xml libraries built into python, que es difícil de creer que no haya soporte para el análisis de HTML en el mundo real.Cómo analizar HTML malformado en python, usando librerías estándar
He encontrado muchas excelentes bibliotecas de terceros para esta tarea, pero esta pregunta es sobre la biblioteca estándar de python.
Requisitos:
- Utilice únicamente componentes de la biblioteca Python estándar (cualquier versión 2.x)
- soporte de DOM
- entidades manija HTML (
) - manejar documentos parciales (como:
Hello, <i>World</i>!
)
Puntos de bonificación:
- Soporte XPATH
- Manejar las etiquetas no cerradas/malformadas. (
<big>does anyone here know <html ???
Aquí está mi solución al 90%, conforme a lo solicitado. Esto funciona para el conjunto limitado de HTML que he intentado, pero como todo el mundo puede ver claramente, esto no es exactamente robusta. Desde que hice esto mirando a los documentos durante 15 minutos y una línea de código, pensé que iba a ser capaz de consultar a la comunidad stackOverflow para una solución similar, pero mejor ...
from xml.etree.ElementTree import fromstring
DOM = fromstring("<html>%s</html>" % html.replace(' ', ' '))
No estoy seguro, pero creo que http://docs.python.org/library/markup.html es una lista exhaustiva de todas las funciones de la biblioteca * ML estándar. –
No lo entiendo ¿Estás esperando que hagamos qué? Usted sabe que no hay tal módulo en stdlib. ¿Cuál es tu pregunta? – SilentGhost
¿Podría alguien explicar por qué me están rebajando? Esta es una pregunta legítima que no se aborda actualmente. Todos podemos beneficiarnos al poder hacer esta tarea sin requerir una biblioteca de terceros. – bukzor