La división DOM/SAX es básica. Se aplica no solo a Python ya que DOM y SAX son de lenguaje cruzado.
DOM: lea todo el documento en la memoria y manipúlelo. Bueno para:
- relaciones complejas a través de las etiquetas en el margen de beneficio
- pequeños documentos XML intrincados
- Precauciones:
- Fácil de usar memoria excesiva
SAX: análisis t documenta mientras lo lees. Bueno para:
- Los documentos largos o corrientes abiertas
- lugares donde la memoria es una limitación
- Precauciones:
- Tendrá que codificar un analizador de estado, que puede ser complicado
BeautifulSoup:
Ideal para etiquetas HTML o etiquetas no muy bien formadas. Fácil de usar y rápido. Bueno para el raspado de la pantalla, etc. Puede funcionar con marcado donde los basados en XML simplemente a través de un error diciendo que el marcado es incorrecto.
La mayor parte del resto no he usado, pero no creo que haya reglas duras y rápidas sobre cuándo usarlas. Solo sus consideraciones estándar: quién va a mantener el código, qué API le resulta más fácil de usar, qué tan bien funcionan, etc.
En general, para las necesidades básicas, es bueno usar los módulos de la biblioteca estándar ya que son "estándar" y, por lo tanto, están disponibles y son bien conocidos.Sin embargo, si necesita profundizar en algo, casi siempre hay módulos no estándares más nuevos con funcionalidad superior fuera de la biblioteca estándar.
Fui con sopa hermosa en esa ocasión ya que los demás estaban siendo pedantes sobre la entrada; algo sobre lo que no tenía control. –
Desde la perspectiva de la productividad del desarrollador y la facilidad de uso, tuve una gran experiencia con 'BeautifulSoup'. La pitón Anaconda se embarca con ella. – arun