Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der Python-Bilibili-Fehlerlösung

Detaillierte Erklärung der Python-Bilibili-Fehlerlösung

高洛峰
高洛峰Original
2017-03-27 15:46:323497Durchsuche

Bevor wir die Zimmernummer erhalten, beheben wir zunächst den Fehler im vorherigen Artikel, d. h. das Problem, das dadurch verursacht wird, dass die eingegebene Zimmernummer keine Nummer ist und die entsprechende Zimmernummer nicht existiert.

Die eingegebene Raumnummer ist keine Zahl:

In Python muss das, was Sie eingeben, eine Zeichenfolge sein. Obwohl Sie eine Zahl eingeben, ist der Typ immer noch str.


roomId = input('请输入房间号:')

Testen wir es mit dem Code aus dem vorherigen Artikel

详解python - bilibili出错的解决办法

In Python nur Nur diese des gleichen Typs können mit „+“ verbunden werden, sodass der Code in unserem vorherigen Artikel auch in


roomUrl = 'http://live.bilibili.com/'+ roomId

geändert werden kann. Nachdem wir nun unser Wissen erweitert haben, Lasst uns das Problem jetzt lösen. Es gibt Methoden zur Zeichenfolgenverarbeitung im leistungsstarken Python. Jetzt müssen wir nur noch feststellen, ob es sich bei den eingegebenen Zeichen um Zahlen handelt. Durch Aufrufen der Funktion isdigit() kann die Anforderung erfüllt werden. Es gibt andere Methoden zur Zeichenfolgenverarbeitung, die ich aussortieren und im Blog veröffentlichen werde.

isdigit() Bedeutung: Gibt True zurück, wenn die Zeichenfolge nur Ziffern enthält, andernfalls wird False zurückgegeben.

Das Programm endet, nachdem das Urteil abgeschlossen ist. Was wir brauchen, ist ein unendliches Urteil. Wenn es eine ist, müssen wir zurückgehen Geben Sie die Nummer ein, müssen wir mit dem nächsten Schritt fortfahren.

Ideen:

1. Geben Sie die Zimmernummer ein.

2. Bestimmen Sie, ob es sich bei der Eingabe um eine Zahl handelt.

3. Wenn es sich um eine Zahl handelt, fahren Sie mit dem nächsten Schritt fort. Wenn es sich nicht um eine Zahl handelt, geben Sie sie erneut ein.

4. Nachdem die Eingabe abgeschlossen ist, beurteilen Sie erneut und fahren Sie dann fort.

Code:


roomId = input('请输入房间号:')while not roomId.isdigit():     
print("数字格式错误,请重新输入!")
     roomId = input('请输入房间号:')
roomUrl = 'http://live.bilibili.com/'+ str(roomId)

Rendering:

详解python - bilibili出错的解决办法

Sehen Sie sich das Rendering an, Zimmernummer Es muss auch erneut eingegeben werden, wenn es leer ist, und die Form von Zahlen und Buchstaben muss ebenfalls erneut eingegeben werden. Wenn es unseren Anforderungen entspricht, werden wir mit der Behebung des nächsten Fehlers fortfahren.

Der eingegebene Raum existiert nicht (d. h. die URL existiert nicht):

Dies dient der Behandlung von Programmausnahmen. Wir müssen nur die Ursache des Programmfehlers herausfinden.

详解python - bilibili出错的解决办法

Konzentrieren Sie sich auf den letzten Satz, urllib.error.HTTPError: HTTP-Fehler 404: Nicht gefunden

Webseite 404, keine Webseite gefunden. Das bedeutet, dass die von Ihnen eingegebene Webadresse nicht existiert. Verwenden Sie try-exclusive, um diesen Fehler zu beheben.

Ideen:

1. Wenn Sie auf eine Website zugreifen, wissen Sie nicht, ob sie vorhanden ist oder nicht

2. Versuchen Sie, auf diese Adresse zuzugreifen

3. Wenn Sie einen Fehler machen, müssen Sie die URL erneut eingeben

4. Um die URL erneut einzugeben, müssen Sie zunächst die Zimmernummer eingeben

5. Das große Schleife ist, wenn die URL am Anfang falsch ist, und die kleine Schleife dient dazu, die Zimmernummer zu ermitteln

6 , die eingegebene URL existiert, dann müssen Sie aus dieser großen Schleife herausspringen

Code:

while True:
     roomId = input('请输入房间号:')
     while not roomId.isdigit():
          print("数字格式错误,请重新输入!")
          roomId = input('请输入房间号:')
     roomUrl = 'http://live.bilibili.com/'+ str(roomId)

     try:
          webPage=urllib.request.urlopen(roomUrl)
          break
     except:
          print('出错啦!')

Die Benutzererfahrung ist jedoch nicht sehr gut und wir wissen nicht, was schief gelaufen ist. Daher bringen wir die spezifischen Gründe mit:


except urllib.error.HTTPError as reason:          
print('网址出错啦!'+ str(reason))

Rendering:

详解python - bilibili出错的解决办法

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Python-Bilibili-Fehlerlösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn