Mit HTMLParser in Python 3.2

Ich habe mit HTML-Parser Verschrottung von Daten aus Webseiten und stripping html-Codierung dabei. Ich bin mir bewusst, dass verschiedene Module wie Schöne Suppe, aber beschlossen zu gehen auf dem Weg der nicht in Abhängigkeit von "außen" - Module. Es ist ein code, den code, den Sie zusammen durch die Eloff: Strip HTML aus strings in Python

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Funktioniert es in Python 3.1. Allerdings habe ich vor kurzem aktualisiert, um Python 3.2.x und gefunden haben, bekomme ich Fehler in Bezug auf die HTML-Parser code wie oben geschrieben.

Mein Erster Fehler Punkte auf der Zeile:

s.feed(html)

... und der Fehler sagt ...

AttributeError: 'MLStripper' object has no attribute 'strict'

So, nach ein bisschen recherche, füge ich "strict= "True" in der obersten Zeile, so dass es...

class MLStripper(HTMLParser, strict=True)

Allerdings bekomme ich die neuen Fehler von:

TypeError: type() takes 1 or 3 arguments

Sehen, was passieren würde, entfernte ich den "selbst" - argument und Links in der "strict= "True"... gab die Fehlermeldung:

NameError: global name 'self' is not defined

... und ich habe "ich vermute, auf Vermutungen" Gefühl.

Ich habe keine Ahnung, was das Dritte argument in der class MLStripper(HTMLParser) Linie wäre, nach self und strict=True; Forschung nicht werfen jede Erleuchtung.

InformationsquelleAutor MilesNielsen | 2012-06-16

Schreibe einen Kommentar