Hallo.
Ich suche eine Lösung für folgendes Problem und hab ehrlich gesagt keine Ahnung wie ich das anstellen soll. Da ich am besten durch Beispiele lerne, wollte ich hier mal Fragen ob ihr mir da eine gute Beispiellösung geben könnt:
Ich habe folgende Zeichenkette
ABCDEF<br>%S</br>EHOKERH
wie bekomme ich jetzt z.B. das %S (Es ist total egal was es für Zeichen sind, Hauptsache das dazwischen) raus?
Hoffe ihr könnt mir helfen.
Gruß sprudel
einfacher regulärer Ausdruck
moin,
Code: Alles auswählen
>>> import re
>>> re.findall("<br>(.+)</br>", "ABCDEF<br>%S</br>EHOKERH ")
['%S']
cp != mv
Hinter das '+' bitte noch ein Fragezeichen setzen, sonst gibt's eine Überraschung wenn zwei von diesen Tags in einer Zeile vorkommen.
Falls es noch jemand interessiert:
Ich versuche den aktuellen Titel von http://antenne1.de/index_start.php rauszufiltern.
Und ja, ich weiß dass das nicht gerne gesehen wird. Ich mache es auch nur aus Übungszwecken
Mein bisheriger Code ist dieser:
BEFORE = """<br>"""
AFTER = """</td>"""
URL = "http://antenne1.de/index_start.php"
text = urllib2.urlopen(URL).read()
expr = "%s(.+?)%s" % (BEFORE,AFTER)
result = re.findall(expr ,text)
print(result)
Ich versuche den aktuellen Titel von http://antenne1.de/index_start.php rauszufiltern.
Und ja, ich weiß dass das nicht gerne gesehen wird. Ich mache es auch nur aus Übungszwecken
Mein bisheriger Code ist dieser:
BEFORE = """<br>"""
AFTER = """</td>"""
URL = "http://antenne1.de/index_start.php"
text = urllib2.urlopen(URL).read()
expr = "%s(.+?)%s" % (BEFORE,AFTER)
result = re.findall(expr ,text)
print(result)
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Wenn du die RE aus Konstanten generierst, solltest du re.escape(BEFORE) bzw. re.escape(AFTER) verwenden, um böse Überraschungen zu vermeiden.sprudel hat geschrieben:Falls es noch jemand interessiert:
Ich versuche den aktuellen Titel von http://antenne1.de/index_start.php rauszufiltern.
Und ja, ich weiß dass das nicht gerne gesehen wird. Ich mache es auch nur aus Übungszwecken
Mein bisheriger Code ist dieser:
BEFORE = """<br>"""
AFTER = """</td>"""
URL = "http://antenne1.de/index_start.php"
text = urllib2.urlopen(URL).read()
expr = "%s(.+?)%s" % (BEFORE,AFTER)
result = re.findall(expr ,text)
print(result)
Für HTML zu parsen, gibt es BeautifulSoup.sprudel hat geschrieben:Falls es noch jemand interessiert:
Ich versuche den aktuellen Titel von http://antenne1.de/index_start.php rauszufiltern.
Und ja, ich weiß dass das nicht gerne gesehen wird. Ich mache es auch nur aus Übungszwecken
Mein bisheriger Code ist dieser:
BEFORE = """<br>"""
AFTER = """</td>"""
URL = "http://antenne1.de/index_start.php"
text = urllib2.urlopen(URL).read()
expr = "%s(.+?)%s" % (BEFORE,AFTER)
result = re.findall(expr ,text)
print(result)
What's On Air ist ein Programm (von Leonidas), was diesen Job erledigt.
Es gibt aber keinen Parser für deinen Sender. Schau dir einfach mal die schon existierenden an.
Es gibt aber keinen Parser für deinen Sender. Schau dir einfach mal die schon existierenden an.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Jetzt schon.rafael hat geschrieben:Es gibt aber keinen Parser für deinen Sender. Schau dir einfach mal die schon existierenden an.
Am besten macht man einen Checkout davon und kann nun einfach `python whatsonair.py --antenne1` verwenden, um den Titel zu bekommen.
Wobei man zugeben muss: da sind schon wieder so viele kaputt! Daher habe ich jetzt alternativ zu den Regulären Ausdrücken eine andere Methode zum Zerlegen des HTMLs implementiert. Ist aber noch nicht ganz optimal. Man müsste sich eben mal dransetzen und die ganzen Parser durchgehen, wo es nötig ist die korrigieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wow, das ist ja super. Wäre es jetzt egal meine eigentliche Idee zu verwirklichen? Ich habe ja eigentlich gedacht das wird nicht so gerne gesehen, aber ich würde eben gerne die aktuellen Titel mit Uhrzeit in einer Datenbank speichern um dann nachträglich nachvollziehen zu können was wann im Radio lief (und nein, das schaff ich noch alleine )
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, Iopodx hat mal in PHP eine Anwendung geschrieben, die whatsonair gepollt hat und die Informationen in eine Datenbank geschrieben. Du kannst `whatsonair.py` als Bibliothek verwenden, brauchst etwas Glue-Code der die Werte in eine Datenbank speichert und bist fertig.sprudel hat geschrieben:Ich habe ja eigentlich gedacht das wird nicht so gerne gesehen, aber ich würde eben gerne die aktuellen Titel mit Uhrzeit in einer Datenbank speichern um dann nachträglich nachvollziehen zu können was wann im Radio lief
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice