Seite 1 von 1

Zeichen aus einem String entfernen.

Verfasst: Montag 21. März 2011, 12:35
von Ethnic
Hi.

Ich möchte ein Programm schreiben das den Quellcode von Seiten ausliest und ihn dann abspeichert.
Jetzt ist das Problem beim speichern der Datei, ich möchte das die Datei den gleichen Namen wie die Webseite hat, da aber unter Linux die Dateinamen keine // enthalten darf geht das aber nicht.
Dann hatte ich die Idee alles was vor und nach der Webseitenadress ist zu löschen bsp. http://youtube.com/ wird einfach zu "youtube"

Hier einmal der code:

Code: Alles auswählen

import urllib

website = raw_input("Wie heist die Seite?: ")
html = urllib.urlopen(website).read()
fobj = open(website, "a")
print html
fobj.write(html)
fobj.close
Ps. Ich kenne google aber weis nicht unter was ich googeln soll, wenn ihr also eine Seite kennt wo es beschrieben steht könnt ihr auch eifach diese posten :D

Re: Zeichen aus einem String entfernen.

Verfasst: Montag 21. März 2011, 12:41
von deets
Du kannst zB das Modul urlparse verwenden, und daraus nur den host-teil extrahieren.

Alternativ reicht auch einfach ein replace:

Code: Alles auswählen

filename = url.replace("/", "")
UU besser ist aber, underscores zu nehmen:

Code: Alles auswählen

filename = url.replace("/", "_")

Re: Zeichen aus einem String entfernen.

Verfasst: Montag 21. März 2011, 12:44
von sma
Natürlich gibt es schon Programme wie wget oder curl, die das (und viel mehr) können, aber selber schreiben übt ja :) Willst du wirklich die Datei im "a" Modus öffnen? Hast du nicht Klammern hinter close vergessen? Willst du nicht lieber Dateien mit with öffnen und automatisch schließen?

Zeichen in einem String kannst du mit replace ersetzen, was dann einen neuen String liefert, also z.B.

Code: Alles auswählen

s = s.replace("/", "_")
Das / ist übrigens nicht das einzige Zeichen, dass in einer URL aber nicht in einem Dateinamen vorkommen darf. Daher würde ich generell anders vorgehen. Ein Weg wäre, die URL selbst noch einmal mittels URL-encode zu kodieren. Das kümmert sich dan auch um Leerzeichen, geschweifte Klammern oder diverse andere Sonderzeichen.

Stefan

Re: Zeichen aus einem String entfernen.

Verfasst: Montag 21. März 2011, 12:56
von Ethnic
Ok danke für die schnelle Hilfe.
Das Board ist echt Klasse :P