Seite 1 von 1

Frage zu urljoin

Verfasst: Montag 12. Dezember 2005, 16:44
von Grammi
hallo,

ich habe eine kleine frage zu urljoin. und zwar macht die funktion urljoin ja aus einem relativen pfad einen absoluten pfad. nun möchte ich von einer url alle links herausfiltern und in einer liste speichern. anschließend lege ich mir ein dictionary an mit der url als key und der liste der links. hier soweit erstmal mein code:

Code: Alles auswählen

import re
import urllib
import urlparse

url='http://www.ebay.de'
code=urllib.urlopen(url)
text=code.read();
liste=re.findall(('(?<=<a href=").*?(?=")'),text)
dic1={url:liste}
nun werden allerdings alle links herausgefiltert, die auch relativ sind und nicht absolut. somit müsste ich die liste der links durchlaufen und aus den relativen pfaden absolute pfade machen. aber wie bekomme ich das mit urlparse.urljoin hin? ich hab schon einiges probiert aber nichts hat geklappt. habt ihr ne idee? ich wär euch echt sehr dankbar.

Edit (Leonidas): Code in Python-Tags gesetzt.

Verfasst: Montag 12. Dezember 2005, 16:52
von mitsuhiko
Ungetestet:

Code: Alles auswählen

import re
from urllib import urlopen
from urlparse import urljoin
url = 'http://www.ebay.de'
text = urlopen(url).read()
links = re.findall('<a.*?href="(.*?)".*?>(?uism)', text)
links = [urljoin(url, link) for link in links]