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.
SGMLLib in Python 3.0.1
[url=http://www.proandkon.com]proandkon.com[/url]
@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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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?
Code: Alles auswählen
from sgmllib import SGMLParser
[url=http://www.proandkon.com]proandkon.com[/url]
@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.
Bis jetzt ist es durchaus auch vorgekommen, dass man halt anstelle von z.B.
Code: Alles auswählen
xrange()
range()
Wenn ich aber Leonidas richtig verstehe, dann ist wohl html5lib gemeint.
[url=http://www.proandkon.com]proandkon.com[/url]
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.