Seite 1 von 1
SGMLLib in Python 3.0.1
Verfasst: Dienstag 7. April 2009, 16:41
von mzh
Hallo zusammen
Ich arbeite an dem Buch "Dive into Python"
http://diveintopython.org/html_processing/index.html
Im 8. Kapitel wird ein HTMLParser gebastelt, allerdings mit Python < 3.0. Dazu wird sgmllib importiert.
Ich arbeite aber mit Python 3.0.1, was muss ich da ändern, damit es funktioniert? Ich habe das ganze Skript auch mit dem 2to3.py tool gebürstet, aber sgmllib wird nicht geändert.
Verfasst: Dienstag 7. April 2009, 17:22
von BlackJack
@mzh: `sgmllib` gibt's anscheinend nicht mehr. War aber auch relativ sinnlos, weil die Bibliothek weder SGML komplett abgedeckt hat, noch mit nicht-wohlgeformtem HTML zurecht kam.
Verfasst: Dienstag 7. April 2009, 18:38
von Leonidas
BeautifulSoup ist daher in Version 3.1 (also der ersten mit Support für Python 3) auf HTMLParser migriert, siehe
Having problems with Beautiful Soup 3.1.0?. Generell klingt das stark nach "nutzt html5lib oder findet einen Maintainer für BeautifulSoup". Naja, immerhin scheint es ja zu funktionieren.
Verfasst: Dienstag 7. April 2009, 19:03
von mzh
ok, also was müsste ich jetzt anstelle von
eingeben? Ich möchte eigentlich bloss das Beispiel aus dem Buch zum Laufen bringen, damit ich es nachvollziehen kann. Plus: wieso wird in diesem Fall nichts von 2to3 unternommen?
Verfasst: Dienstag 7. April 2009, 19:34
von snafu
Hast du das nicht verstanden? Die SGML-Bibliothek wird offenbar nicht mehr standardmäßig mitgeliefert. Du kannst es dir aber vielleicht nachträglich installieren.
Verfasst: Dienstag 7. April 2009, 19:40
von mzh
@snafu: Ja, ey locker bleiben...
Bis jetzt ist es durchaus auch vorgekommen, dass man halt anstelle von z.B.
schreibt. Deshalb dachte ich, es gibt hier eine äquivalente Alternative. Und sonst, nein, ich habe es nicht verstanden, ich hoffe du nimmst mir das nicht allzu übel.
Wenn ich aber Leonidas richtig verstehe, dann ist wohl html5lib gemeint.
Verfasst: Dienstag 7. April 2009, 19:51
von snafu
Nein, Leonidas spricht davon, dass die `sgmllib` früher die Grundlage für den Parser `BeautifulSoup` war und der sich durch den Wegfall eine neue Grundlage suchen musste. So gesehen hat das nicht wirklich was mit deiner Frage zu tun. Der Kommentar mit `html5lib` bezieht sich dabei auf den Link. Da heult sich der Autor nämlich so ein bißchen mit dem Unterton aus, dass er eigentlich gar keine Lust mehr auf sein Projekt hat und das nur noch wegen der großen Nutzerbasis von BS weitermachen würde. Lieber wäre es ihm aber anscheinend, wenn die Leute zu anderen Parsern (z.B. `html5lib`) wechseln würden oder sich jemand bereit erklärt, das Projekt zu übernehmen bzw ihm die wohl doch recht umfangreichen größeren Codeänderungen zukommen zu lassen.