Seite 1 von 1

mit regex Links auslesen

Verfasst: Donnerstag 1. September 2005, 17:39
von cime
hallöchen,

ich bin noch ganz neu bei regex und naja, irgendwie lappt das hier nicht so wie es soll. Kann mit einer von euch sagen wieso, ich rätsle nämlich schon stundenlang rum?

Code: Alles auswählen

import re

def get_all_links(code):
    list=[]
    for a in ['a','A']:
        x=re.compile(r'<'+a+r'.+href="([.^]+)".*>',re.M | re.S)
        for i in x.findall(code):
            print i
    return list

f=open("ftpcommands.htm",'r')
print get_all_links(f.read())
f.close()
naja, Dieser Code sollte eigentlich aus einer beliebigen html- datei alle links auslesen ... aber irgendwie klappt das nicht so ganz ... könnt ihr mir helfen??

mfg cime

Verfasst: Donnerstag 1. September 2005, 18:54
von jens
Also dafür würde ich einen Parser bauen! Beispiele sind bestimmt im Forum zu finden.

Re: mit regex Links auslesen

Verfasst: Donnerstag 1. September 2005, 19:44
von joe
Hallo!
cime hat geschrieben:auslesen ... aber irgendwie klappt das nicht so ganz ...
Da dürftte eigentlich gar nichts klappen:
- Deine funktion erkennt z.B. <a href="..^^.^^.^^.^^."> . Links sehen aber wohl eher nicht so aus :-)
- such mal in der doku nach greedy (.*) vs. non-greedy (.*?)
- da "href" auch sicherlich case-insensitive ist, re.I verwenden
- list ist eine built-in funktion, also die liste umbenennen
- eine liste füllt sich nicht von selbst :-)

hth, joe