Seite 1 von 1

Ein weiteres re-Problem

Verfasst: Samstag 20. März 2010, 17:36
von microkernel
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?

Verfasst: Samstag 20. März 2010, 19:05
von /me
Brauchst du wirklich reguläre Ausdrücke? Im Moment sieht es aus als würde ein txt.split("'"") reichen.

Verfasst: Samstag 20. März 2010, 19:07
von 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.

Verfasst: Samstag 20. März 2010, 20:03
von DasIch
Man parst HTML nicht mit regular expressions.

Verfasst: Sonntag 21. März 2010, 01:50
von sma
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

Verfasst: Sonntag 21. März 2010, 08:33
von jens

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)

Verfasst: Sonntag 21. März 2010, 20:01
von str1442

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>""")))