HTMLParser.HTMLParseError: Betreffende Stelle anzeigen...

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Normalerweise bekommt man bei einem HTMLParseError nur die Position genannt. Das ist wenig hilfreich. Allerdings kann man recht einfach die betreffende Stelle markieren.

Hier ein kleines Beispiel:

Code: Alles auswählen

import HTMLParser

content = """<p>
<span>Das ist ein <table 0=0>Fehler!</span>
</p>"""

parser = HTMLParser.HTMLParser()
try:
    parser.feed(content)
except HTMLParser.HTMLParseError, err:
    lines = content.splitlines(True)
    line = lines[err.lineno - 1].rstrip()
    marker = "-" * err.offset + "^"

    print err
    print line
    print marker
Ausgabe:

Code: Alles auswählen

malformed start tag, at line 2, column 26
<span>Das ist ein <table 0=0>Fehler!</span>
-------------------------^
(Ich mußte erst im Netz suchen, um das zusammen zu bauen, deswegen merke ich mir das hier mal im Forum ;) )

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten