2010-09-01 6 views
2

Je pensais que BeautifulSoup pouvait le faire, mais cela ne semble pas faire l'affaire.Comment convertir du HTML brut du Web en XML parsable en Python

Quelle méthode avez-vous déjà utilisée, et est fiable à long terme?

+0

Votre HTML est-il propre? – Scharron

+3

c'est * sur le web. * –

+1

Avez-vous essayé http://utidylib.berlios.de/? Je ne le sais pas, mais Tidy est capable de convertir HTML hideux en XML sexy. Peut-être que son wrapper python peut le faire aussi? – Scharron

Répondre

2

Vous pouvez essayer http://utidylib.berlios.de/, un wrapper python pour la bibliothèque propre. Tidy fonctionne bien dans la plupart des cas. Pour quelque chose de plus robuste (ou au moins plus semblable à un navigateur), je suppose que vous pourriez essayer webkit ou gecko. Je ne suis pas sûr que les enveloppes responsables du nettoyage HTML sont disponibles, mais vous pouvez jeter un oeil.

4

Vous pouvez utiliser la bibliothèque lxml, en particulier lxml.html qui vous donne un objet ETree que vous pouvez ensuite sérialiser en XML avec (entre autres) le. tostring() method. Si cela échoue sur votre HTML (il est trop cassé) vous pouvez utiliser ElementSoup (une extension sur BeautifulSoup) pour construire une arborescence lxml.html.