Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Dateien über HTTP in Python herunterladen?

Wie kann ich Dateien über HTTP in Python herunterladen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 03:42:10848Durchsuche

How Can I Download Files via HTTP in Python?

Dateien über HTTP mit Python herunterladen

Szenario: Sie verfügen über ein Python-Dienstprogramm, das MP3-Dateien von einer Website herunterlädt und aktualisiert eine Podcast-XML-Datei. Der MP3-Download wird derzeit von wget in einer Windows-.bat-Datei abgewickelt, Sie suchen jedoch nach einer vollständig Python-basierten Lösung.

Lösung:

Python bietet mehrere Methoden für Herunterladen von Dateien über HTTP innerhalb des Python-Ökosystems. Ein beliebter Ansatz ist die Verwendung des Moduls urllib.request. Das folgende Snippet zeigt, wie eine Datei mit urllib.request.urlretrieve() heruntergeladen wird:

import urllib.request

url = "http://www.example.com/songs/mp3.mp3"
filename = "mp3.mp3"

urllib.request.urlretrieve(url, filename)

Dieser Code ruft die Datei von der angegebenen URL ab und speichert sie unter dem angegebenen Dateinamen. Beachten Sie, dass Sie für Python 2 import urllib und urllib.urlretrieve verwenden würden.

Alternativ können Sie die Requests-Bibliothek verwenden, die eine benutzerfreundlichere API bietet. Hier ist ein Beispiel:

import requests

url = "http://www.example.com/songs/mp3.mp3"
response = requests.get(url)
response.raise_for_status()

with open("mp3.mp3", "wb") as f:
    f.write(response.content)

Dieser Code stellt eine GET-Anfrage an die URL und ruft den Dateiinhalt ab. Anschließend wird der Inhalt im Binärmodus in den angegebenen Dateinamen geschrieben.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien über HTTP in Python herunterladen?. 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