[Python-de] HTML-Tags

Walter Dörwald walter at livinglogic.de
Tue Sep 3 12:51:32 EDT 2002


Dirk Lannatewitz wrote:
> Hallo all,
> 
> ich habe eine Datei. Der Ursprung war eine HTML-Datei mit einer Tabelle.
> Bis auf die Tabellenzeilen habe ich alles rausgelöscht. Nun habe ich
> allerhand Zeilen vom Format:
> <tr><td width=200 align=right valign=top bgcolor=#CECEFF><font face='Arial,
> Helv, Helvetica' size=2>z.Zt.</td><td width=200 bgcolor=#CECEFF><font
> face='Arial, Helv, Helvetica' size=2>zur Zeit</td></tr>.
 >
> Gibt es eine elegante Möglichkeit die Tags zu entfernen, und den Rest (z.Zt.
> zur Zeit) so umzuformen, dass folgendes Ergebnis erziehlt wird. ['z.Zt.'
> "zur Zeit"]

Du könntest es mal mit XIST (http://www.livinglogic.de/Python/xist/)
versuchen. Das Herausfiltern der Tags geht dann folgendermaßen:

from ll.xist import parsers
from ll.xist.ns import html

s = """<tr><td width=200 align=right valign=top bgcolor=#CECEFF><font 
face='Arial, Helv, Helvetica' size=2>z.Zt.</td><td width=200 
bgcolor=#CECEFF><font face='Arial, Helv, Helvetica' size=2>zur 
Zeit</td></tr>"""

node = parsers.parseString(s, tidy=1)
tabelle = node.find(type=html.table, searchchildren=1)[0]
zeilen = []
for tr in tabelle.find(type=html.tr):
    zeilen.append([])
    for td in tr.find(type=html.td):
       zeilen[-1].append(unicode(td))

Damit kriegst Du den Tabelleninhalt als Liste von Listen, d.h.
print zeilen liefert:
[[u'z.Zt.', u'zur Zeit']]

> p.s. die Single- und Doublequotes sind wichtig

Ist das ein vorgegebenes Ausgabeformat? Was passiert, wenn
im String Single- oder Doublequotes sind?

Ausgabecode könnte evtl. so aussehen:

for z in zeilen:
    print "['%s' \"%s\"]" % \
       (z[0].replace("'", "\\'"),
        z[1].replace('"', '\\"'))

Ich hoffe, das hilft Dir weiter.

Bis demnächst,
    Walter Dörwald





More information about the Python-de mailing list