En este tutorial, aprenderá a como descargar archivos desde la web utilizando diferentes modulos de Python. Además, descargará archivos, páginas web, Amazon S3 y otras fuentes.

Por último, aprenderá cómo superar diferentes tipos de desafíos que puede encontrar, como descargar archivos que redirigen, descargar archivos grandes, completar una descarga con hilos y otras tácticas. 

Uso del Request

Se puede descargar archivos desde una URL utilizando el módulo de request. Considere el siguiente código:

Simplemente obtenga la URL usando get, que es un método del módulo de request y almacene en una variable llamada «myfile». Luego, escribe el contenido de la variable en un archivo.

Uso de wget

También se puede descargar un archivo desde una URL utilizando el módulo wget de Python. El módulo wget se puede instalar utilizando pip.

Considere el siguiente código, que utilizaremos para descargar el logo de Python:

En este código, la URL, junto con la ruta(donde se almacenará la imagen), se pasa al método de descarga del módulo wget.

Descargar un archivo que hace redirección

En esta sección, aprenderá a descargar desde una URL, que redirige a otra URL con un archivo .pdf mediante solicitudes. Para descargar este archivo pdf, use el siguiente código:

Luego, usamos el método get del módulo de request para obtener la URL. En el método get, establecemos allow_redirects en True, que permitirá la redirección en la URL, y el contenido después de la redirección se asignará a la variable myfile.

Finalmente, abrimos un archivo para escribir el contenido obtenido.

Descargar archivos grandes

Considere el siguiente código:

Primero, usamos el método get del módulo de request como lo hicimos antes, pero esta vez, configuraremos el atributo stream en True.

Luego, creamos un archivo llamado PythonBook.pdf en el directorio de trabajo actual y lo abrimos para escribir.

Luego, especificamos el tamaño del fragmento que queremos descargar a la vez. Hemos establecido 1024 bytes, iteramos a través de cada fragmento y escribimos los fragmentos en el archivo hasta que terminen.

Descarga de multiples archivos (Descarga Paralela/Masiva)

Para descargar multiples archivos al mismo tiempo, se deben utilizar los siguientes módulos:

Importamos los módulos os y time para verificar cuánto tiempo lleva descargar los archivos. El módulo ThreadPool le permite ejecutar múltiples hilos o procesos usando el grupo.

Creamos una función simple que envíe la respuesta a un archivo:

Las URL son una matriz bidimensional que especifica la ruta y la URL de una página que desea descargar.

Pase la URL a request.get como lo hicimos en la sección anterior. Finalmente, abra el archivo (ruta especificada en la URL) y escriba el contenido de la página.

Ahora, podemos llamar a esta función para cada URL por separado, y también podemos llamar a esta función para todas las URL al mismo tiempo. Hagámoslo para cada URL por separado en el bucle for y observemos el temporizador:

Ahora reemplace el bucle por la siguiente línea de código:

Ejecute el script.

En mi caso la diferencia de tiempos fue bastante considerable:


En este artículo hemos revisado algunas formas de descarga, en un artículo posterior revisaremos algunas otras formas.

Este artículo se encuentra basado en Simple Examples of Downloading Files Using Python.

Ejemplos de descarga de archivos con Python
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Etiquetado en:    

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook