Ein weiteres re-Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Hallo,
ich möchte gerne aus einen Text einen Link herausfiltern. Det text sieht ungefähr so aus:

Code: Alles auswählen

txt="blabla blabla .... und weiteres blabla Und jetzt kommt der Link <a href='http://www.adresse.de/xy.php?go=3478hdb329x98e7'>LINK</a>
Der Link beginnt immer mit "http://www.adresse.de/xy.php?go=" das einzigste was immer variert ist der Parameter-Code.
Welchen Plattern muss ich benutzen um nur den Link herauszufiltern?
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Brauchst du wirklich reguläre Ausdrücke? Im Moment sieht es aus als würde ein txt.split("'"") reichen.
problembär

Manchmal (vor allem im Perl-Bereich) kommt es mir vor, als benutzten Leute Programmierforen nur, um schnell mal 'ne RegEx ausgespuckt zu bekommen.
Da mach' ich so nicht mit.

Zeig' erstmal, wie weit Du gekommen bist, was Deine bisherige RegEx ausspuckt und wo genau Du angeblich nicht weiterkommst.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Man parst HTML nicht mit regular expressions.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Plattern? Das hier sollte die meisten Fälle erschlagen.

Code: Alles auswählen

href\s*=\s*(["']?)http://www.adresse.de/xy.php?go=([^S"'>]+)\1
Stefan
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Code: Alles auswählen

import HTMLParser

class MyHTMLParser(HTMLParser.HTMLParser):
    def handle_starttag(self, tag, attrs):
        if tag != "a":
            return
        attr = dict(attrs)
        if "href" in attr and attr["href"].startswith("http://www.adresse.de/xy.php?go="):
            print attr["href"]

txt="blabla blabla .... und weiteres blabla Und jetzt kommt der Link <a href='http://www.adresse.de/xy.php?go=3478hdb329x98e7'>LINK</a>"
MyHTMLParser().feed(txt)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Code: Alles auswählen

from lxml.html import iterlinks
from operator import itemgetter
print "\n".join(map(itemgetter(2), iterlinks("""blabla blabla .... und weiteres blabla
Und jetzt kommt der Link 
<a href='http://www.adresse.de/xy.php?go=3478hdb329x98e7'>
LINK</a>""")))
Antworten