mit regex Links auslesen

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
cime
User
Beiträge: 152
Registriert: Dienstag 24. Mai 2005, 15:49

Donnerstag 1. September 2005, 17:39

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
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 1. September 2005, 18:54

Also dafür würde ich einen Parser bauen! Beispiele sind bestimmt im Forum zu finden.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
joe

Donnerstag 1. September 2005, 19:44

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
Antworten