Forum Programmation.web Analyser un fichier html

Posté par  .
Étiquettes : aucune
0
28
avr.
2010
Bonjour,

J'aimerai analyser des fichiers html (pour récupérer le contenu entre deux balises).

Voici ce que j'ai trouvé :
  • Le lire avec des RegExp : c'est pas assez fiable ni modulaire (un div entre 2 div par exemple...)
  • Le lire comme un .xml (ou équivalent) : malheureusement les fichiers html ne respecte pas les normes XML (balises non fermées, ...)
  • Un truc propriétaire : http://www.reflectionit.nl/Html2Xml.aspx (mais ca à l'air d'être abandonné et bien sûr on ne peut pas reprendre le code source ;) (troll inside))

Quelle solutions connaissez-vous ?

Merci ;) .
  • # BeautifulSoup

    Posté par  . Évalué à 6.

    Extrait de la page d'accueil :


    You didn't write that awful page. You're just trying to get some data out of it. Right now, you don't really care what HTML is supposed to look like.

    Neither does this parser.

    [http://www.crummy.com/software/BeautifulSoup/]

    Bibliothèque en Python donc idéal pour faire un p'tit script crade et rapidement.
    • [^] # Re: BeautifulSoup

      Posté par  . Évalué à 1.

      Un grand merci, ca à l'air de dater un peu mais je vais voir ce que je peux faire ;)

      « En fait, le monde du libre, c’est souvent un peu comme le parti socialiste en France » Troll

      • [^] # Re: BeautifulSoup

        Posté par  . Évalué à 2.

        C'est génial ce truc ! Ca permet même de rendre le code plus beau ;).

        PS : À la base je pensais le faire en php (vu que j'ai MagpieRSS pour lire les RSS) mais je vais le faire en python tellement c'est puissant ce script ;) .

        PS (bis) : j'ai lu l'autre commentaire en même temps, je vais voir ce que ca donne avec HTMLParser ;) (mais je garde BeautifulSoup de coté).

        « En fait, le monde du libre, c’est souvent un peu comme le parti socialiste en France » Troll

  • # libxml

    Posté par  . Évalué à 1.

    J'ai eu à faire ça pour le boulot: j'utilise libxml2 et le module HTMLparser

    J'avais déjà du code présent pour parser du xml en sax avec libxml2, je l'ai adapté pour utiliser les fonctions html.
    Je parse en SAX mais tu peux aussi parser en DOM.
    Regarde les fonctions readFile, htmlSAXParseDoc, etc.

    Mon programme scanne un paquet d'URL, j'ai pas tout vérifié, mais il me semble que libxml s'en sort dans le cas d'un document mal formé.
  • # Tidy Html

    Posté par  (site web personnel) . Évalué à 1.

    Tidy Html pour le nettoyage de l'html et le transformer en XML valide.
    Puis un parseur xml.
    • [^] # Re: Tidy Html

      Posté par  (site web personnel) . Évalué à 2.

      De mémoire ça ne marchait pas le Tidy Html avec du 64bits…

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.