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