2017-02-11 2 views
0

Ich versuche, eine Liste von Dateien und Verzeichnissen in einer angegebenen URL zu erhalten. Die URL, die ich verwende, ist ein Online-Wörterbuch: www.shabdkosh.com/kn/browse/. Mein Code ist wie folgt:Python - Kann keine Links anderer Sprachen mit os.walk erkennen

html_files = [] 

for root, dirs, files in os.walk("www.shabdkosh.com/kn/browse"): 
    for file in files: 
     #Files in shabdkosh have a digit as name to represent page number 
     if file.isdigit(): 
      html_files.append(os.path.join(root, file)) 

, wenn ich den Inhalt von Dateien zu drucken, erhalte ich:

www.shabdkosh.com/kn/browse/3/1 
www.shabdkosh.com/kn/browse/a/1 
www.shabdkosh.com/kn/browse/a/10 
www.shabdkosh.com/kn/browse/a/2 
... 

Das ist cool. Aber auch andere URLs sollten abgerufen werden. Die URLs, die Kannada-Alphabete enthalten, werden nicht angezeigt (Kannada ist eine indische Sprache), obwohl sie existieren.

Zum Beispiel

www.shabdkosh.com/kn/browse/ಅ/ 

Wie so nicht aufgehoben, obwohl sie "www.shabdkosh.com/kn/browse" angegeben für os.walk als Parameter in dem Pfad liegen angezeigt. Also, wie bekomme ich os.walk, um die Liste der URLs mit den Kannada Buchstaben zu bekommen?

Ich habe sogar versucht, einschließlich dem folgenden Code am Anfang meiner Python-Datei:

#!/usr/bin/env python 
# -*- coding: ascii -*- 

Aber kein Glück. Jede Hilfe wird geschätzt.

S.S Sorry, wenn es Sie stört, dass ich Old Python 2.7 benutze.

+0

Ist das nicht, was Sie wollten 'wenn file.isdigit (file'? Den Zustand entfernen, erhalten Sie mehr. – Gang

+0

kein Glück. Ich habe sogar die„Dateien“gedruckt außerhalb des Zustandes. I bekomme nur reine englische URls –

Antwort

1

Paar Dinge versuchen:

  1. Wenn Sie irgendeine Codierung überhaupt verwenden, sollte es utf-8, nicht ascii sein. Natürlich sind das keine ASCII-Zeichen.
  2. Stellen Sie sicher, dass Ihr Pfad Unicode ist, z. os.walk (u "www.shabdkosh.com/kn/browse"). Siehe Ciro Kommentar auf Using os.walk() to recursively traverse directories in Python