html parser



  • hola leute

    kennt jemand von euch einen html parser fuer c(++) ? muss nicht der alleskoenner sein. mir gehts da eher darum, das ich links, tabellen usw aus einer html datei rausbekomme.
    ist es ansich schwer so einen parser selbst zu programmieren ?

    Meep Meep



  • http://htmlparser.sourceforge.net/
    Hab ich jedoch bisher nicht ausprobiert - war nur das erste Suchergebnis bei Google. Wenns XHTML wäre würde ich dir http://sourceforge.net/projects/tinyxml/ empfehlen. Damit arbeitet es sich echt super.



  • Ein HTML Parser baut auf einen SGML- (HTML) oder XML- (XHTML) Parser auf. So etwas gibt es fertig, aber für C++ habe ich noch keinen ausprobiert.



  • lass es am besten.

    Wenn Du Windows verwendest, kannst Du auch die MSHTML-Schnittstelle benutzen. Dann kommst Du an alles dran, so als ob Du in JavaScript im IE z.B. waerst.

    Unter Linux gibt es auch Bibliotheken dafuer, wenn entsprechende Browser installiert sind.

    Ansonsten musst Du halt zuerst einen SGML-Parser und einen XML-Parser schreiben, der die HTML- und XHTML-Sprachdefinitionen verarbeiten kann, und Dokumente, die in diesen Sprachen ausgdrueckt werden. Ausserdem muss man auch Dokumente korrekt verarbeiten koennen, die sich nicht an die Standards halten.

    Du kannst natuerlich probieren, ueber einfaches String-Suchen im Dokument etwas herauszubekommen, das mag bei manchen Dokumenten funktionieren.



  • dank euch mal fuer die anregungen. hab mein problemchen jetzt mal mit der string-suche geloest.
    mich wuerde nun trotzdem mal interessieren, wie man so nen kleinen parser selber bauen kann. z.b. fuer ini-files. kennt da jemand ne seite wo sowas erklaert wird ?

    Meep Meep



  • Nimm dir doch einfach einen fertigen Parser. Ich glaube dort kannst du am besten verstehen wie ein Parser aufgebaut ist. Ein .ini-Parser sollte wohl für den Anfang am verständlichsten sein. Ich schreibe gerade auch an einem eigenen Parser für Konfigurationsdateien - Ich schätze mal, dass dieser im Laufe des Wochenendes fertig wird. Wenn interesse besteht kann ich ihn ja hier posten.



  • Würde mit .ini-Dateien nicht anfangen, da man da keinen wirklichen Parser braucht, es gibt nur ganz wenige Fallunterscheidungen die man ohne Probleme in ner Schleife prüfen kann. Viel lehrreicher ist ein Taschenrechner der +-*/() kann und das in beliebiger Reihenfolge.



  • @Herrmann
    hast du deinen parser fertig bekommen ? koenntest du ihn mal hier posten ?

    Meep Meep



  • http://www.tmplink.de/cplib/

    Die Version hat jedoch noch einige kleine Bugs.


Anmelden zum Antworten