Zeichen aus einem String entfernen.

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
Ethnic
User
Beiträge: 5
Registriert: Freitag 18. März 2011, 12:54

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
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("/", "_")
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
Ethnic
User
Beiträge: 5
Registriert: Freitag 18. März 2011, 12:54

Ok danke für die schnelle Hilfe.
Das Board ist echt Klasse :P
Antworten