Seite 1 von 1

Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch

Verfasst: Donnerstag 20. August 2020, 16:25
von omux
Hallo Leute,

ich bin noch ganz am Anfang und versuche gerade mein erstes richtiges Tool zu schreiben.
Durch googeln konnte ich mein Problem irgendwie nicht lösen obwohl das Problem wahrscheinlich ganz einfach zu beheben ist.
Villeicht kann mir da jemand von euch helfen, würde mich sehr freuen.

Habe einen Webscraper mit BeautifulSoup geschrieben und möchte jetzt einen Ordner mit dem gescrapten Artikelnamen als Ordnername zu erstellen.
Der Ordner soll in dem Directory erstellt werden in dem gerade gearbeitet wird, habe es schon auf verschiedene Methode wie z.B. die unten versucht aber bekomme es irgendwie nicht hin.

Einer der Versuche:

Code: Alles auswählen

insname = soup.head.title.text
os.mkdir(insname)
Der Fehler:

Code: Alles auswählen

OSError                                   Traceback (most recent call last)
<ipython-input-43-3e0eca5c3866> in <module>
      1 insname = soup.head.title.text
----> 2 os.mkdir(insname)

OSError: [WinError 123] Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch: 'MacBook Pro 13" (Mid 2012) | inkl. Ladekabel und Originalverpackung, € 300,- (1090 Wien) - willhaben'
LG omux

Re: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch

Verfasst: Donnerstag 20. August 2020, 17:19
von Fire Spike
Du versuchst einen Ordner zu erstellen mit einem Namen der sehr wahrscheinlich nicht vom Dateisystem unterstützt wird 8)

Re: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch

Verfasst: Donnerstag 20. August 2020, 17:39
von Sirius3
Die erlaubten Zeichen unter Windows sind sehr eingeschränkt, hier ist das | das Problem.

Re: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch

Verfasst: Donnerstag 20. August 2020, 17:54
von __blackjack__
Das ist auch nicht ganz ungefährlich irgendwelche Daten die aus einer Webseite gescraped sind, einfach so als Pfad + Dateiname für Dateioperationen zu verwenden. Was wenn da jemand "C:\\temp\\ordnername" in den <title> schreibt? Oder einen relativen Pfad der über das aktuelle Arbeitsverzeichnis zeigt "..\..\ordnername". Und der Inhalt vom <title> muss über mehrere HTML-Dokumente hinweg nicht eindeutig sein, auch wenn die ansonsten nicht die gleichen Daten enthalten.

Es wäre sicherer den Ordnernamen einen eindeutigen Präfix zu verpassen, beispielsweise eine UUID und die Namen selbst mit einer Positivliste von erlaubten Zeichen zu säubern.

Re: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch

Verfasst: Donnerstag 20. August 2020, 18:04
von omux
Perfekt,vielen dank für die schnelle HIlfe :)