Hallo zusammen,
gibt es eine Möglichkeit, eine per urlopen eingelesene Webseite so zu verändern, dass die enthaltenen Verweise nicht mehr relativ, sondern absolut sind. Die Problemstellung ist also so, dass man einen string hat, der den Quellcode der Webseite enthält. Dann benötige ich ein entsprechendes Python-Skript, das die die relativen Links erkennt und durch absolute ersetzt. Die Variante mit BeautifulSoup, jeden Link zu ersetzen, dauert bei umfangreicheren Seiten extrem lange. Schön wäre eine alternative Lösung, bei der die Performance besser wäre, aber ich fürchte, das wird wohl so gar nicht möglich sein. Falls doch bin ich für alle Tipps dankbar.
Viele Grüße,
Makmak
Relative Links in absolute Links umwandeln? :(
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Makmak!
Ich glaube, *HTTrack* kann so etwas. Allerdings ist das kein Python-Programm.
http://www.httrack.com/
Dann gibt es noch *httrack-py* http://www.satzbau-gmbh.de/staff/abel/httrack-py/
mfg
Gerold

Ich glaube, *HTTrack* kann so etwas. Allerdings ist das kein Python-Programm.
http://www.httrack.com/
Dann gibt es noch *httrack-py* http://www.satzbau-gmbh.de/staff/abel/httrack-py/
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Nicht getestet, sollte aber seinen Zweck erfüllen:
Verwendung etwa so:
Code: Alles auswählen
import re
import urlparse
tag_re = re.compile(r'(<[a-zA-Z:]+\s+(?:src|href)=)(["\']?)(.*?)\2(>)(?uism)')
def make_absolute(html, root_url):
def handle_match(m):
url = urlparse.urljoin(root_url, m.group(3))
g = m.group
return type(html)('').join((g(1), g(2), url, g(2), g(4)))
return tag_re.sub(handle_match, html)
Code: Alles auswählen
make_absolute(html, 'http://www.example.com/this_location/')
TUFKAB – the user formerly known as blackbird