Frage zu urljoin

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
Grammi
User
Beiträge: 9
Registriert: Dienstag 11. Oktober 2005, 15:12

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.
MfG Grammi
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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]
TUFKAB – the user formerly known as blackbird
Antworten