hallo,
kurze frage an euch, da ich grad anfange mit python zu programmieren.
ich habe eine html datei, in der eine tabelle vorhanden ist mit 5 spalten. nun möchte ich eine suchfunktion mit python schaffen, dass man in der datei suchen kann.
wie kann man das programmieren. gibt es schon fertige fkten dafür?
ich habe es mir so überlegt:
html datei durchsuchen mit regulären ausdrücken, damit ich den inhalt "herausfiltern" kann und dann in eine txt als tabelle schreiben.
dann wiederum in der txt datei suchen und gefundenen stellen zurückgeben.
geht das ganze denn evtl auch einfacher, z.bsp direkt in html datei suchen ohne die daten zu filtern?
ich danke euch im voraus...
html file durchsuchen
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hab mal eine kleinere Version von http://www.python-forum.de/viewtopic.php?t=3610 für dich erstellt. Fuktioniert zwar nicht spontan so toll mit HTML-Daten, weil halt HTML-Code angezeigt wird, aber schon mal ein Ansatz:
Ausgaben:
Code: Alles auswählen
class search:
def __init__(self, content_extract=35, max_cutouts=20):
# Größe des Ausschnittes der angezeigt wird
self.content_extract = content_extract
# Max. Anzahl an Treffer, die Angezeigt werden sollen
self.max_cutouts = max_cutouts
def search_file( self, filepath, search_string ):
f = file( filepath, "r" )
content = f.read()
f.close()
if search_string in content:
self.cutout_content( content, search_string )
def cutout_content( self, content, search_string ):
current_pos = 0
search_string_len = len( search_string )
for i in xrange( self.max_cutouts ):
try:
pos = content.index( search_string, current_pos )
except ValueError:
break
content_window = content[ pos-self.content_extract : pos+self.content_extract ]
print ">>>", content_window.encode("String_Escape")
current_pos += pos + search_string_len
if __name__ == "__main__":
s = search()
s.search_file(__file__, "print") # Sucht in sich selbst nach 'print'
>>> self.content_extract ]\n print ">>>", content_window.encode(
>>> rch()\n s.search_file(__file__, "print") # Sucht in sich selbst nach
Ich denke du wirst am besten mit regulären Ausdrücken (re's, "pydoc re") oder BeautifulSoup bedient sein, vielleicht hilft die auch die HTMLParser-Library.
Ich glaube aber mich zu erinnern, dass das alles schon zu dem Thema irgendwann mal hier erwähnt wurde, im Zweifelsfall also Suchfunktion bemühen
Henning
Ich glaube aber mich zu erinnern, dass das alles schon zu dem Thema irgendwann mal hier erwähnt wurde, im Zweifelsfall also Suchfunktion bemühen

Henning