¿Cómo descargar un archivo a través de HTTP?

Resuelto Owen asked hace 16 años • 31 respuestas

Tengo una pequeña utilidad que uso para descargar un archivo MP3 de un sitio web según un cronograma y luego compila/actualiza un archivo XML de podcast que agregué a iTunes.

El procesamiento de texto que crea/actualiza el archivo XML está escrito en Python. Sin embargo, uso wget dentro de un .batarchivo de Windows para descargar el archivo MP3 real. Preferiría tener toda la utilidad escrita en Python.

Luché por encontrar una manera de descargar el archivo en Python, por eso recurrí al uso de wget.

Entonces, ¿cómo descargo el archivo usando Python?

Owen avatar Aug 22 '08 22:08 Owen
Aceptado

Uno más, usando urlretrieve:

import urllib.request
urllib.request.urlretrieve("http://www.example.com/songs/mp3.mp3", "mp3.mp3")

(para uso de Python 2 import urlliby urllib.urlretrieve)

PabloG avatar Aug 22 '2008 16:08 PabloG

Usar urllib.request.urlopen():

import urllib.request
with urllib.request.urlopen('http://www.example.com/') as f:
    html = f.read().decode('utf-8')

Esta es la forma más básica de utilizar la biblioteca, menos el manejo de errores. También puedes hacer cosas más complejas, como cambiar encabezados.

En Python 2, el método está en urllib2:

import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()
Corey avatar Aug 22 '2008 15:08 Corey