Archivo de descarga de python solicitudes

Archivo de descarga de python solicitudes

“La Biblioteca de las solicitudes de Python es una de las bibliotecas más versátiles y valiosas del ecosistema de Python. Sus características y su increíble simplicidad hacen que valga la pena impulsar numerosas aplicaciones de Python."

Este tutorial nos enseñará cómo descargar un archivo de una URL determinada utilizando el paquete de solicitudes.

Instalación y configuración

Antes de usar el método de solicitudes, debe asegurarse de que esté instalado en su entorno. Puede hacer esto ejecutando el comando pip como se muestra:

$ sudo Pip Solicitudes de instalación


o

$ sudo PIP3 Instalar solicitudes


En Windows, puede ejecutar el comando:

$ Python -M PIP PISLO Solicitudes de instalación


Si tiene Conda instalado, ejecute el comando:

Conda install -c solicitudes de anaconda

Ejemplo 1 - Descargue un archivo simple

Podemos descargar un archivo utilizando el módulo de solicitudes especificando la URL en el archivo y utilizando el módulo de archivo de Python para escribir el contenido en un nombre de archivo dado.

A continuación se muestra una ilustración de ejemplo:

$ touch ~/download_image.py


Edite el archivo y agregue el código:

$ vim ~/download_image.py
Solicitudes de importación
url = 'https: // cargar.Wikimedia.org/wikipedia/commons/a/af/tux.png '
R = solicitudes.Get (URL, tampable_redirects = verdadero)
Con Open ('Tux.png ',' wb ') como f:
F.escritor.contenido)


En el código anterior, comenzamos importando el módulo de solicitudes. Luego creamos una variable que contiene la URL en el archivo que deseamos descargar. En este caso, queremos descargar una imagen.

En la tercera línea, creamos un objeto de respuesta HTTP y hacemos una solicitud GET a la URL especificada. También establecemos los tampsing_redirects en verdadero para permitir que el cliente siga redirecciones (si las hay). El objeto de respuesta se guarda luego en la variable llamada R.

Finalmente, guarde el objeto recibido en un archivo como Tux.PNG en modo binario.

Luego puede verificar el directorio donde se encuentra el script para el esmoquin.archivo png.

Ejemplo 2 - Descargue archivos grandes

En el ejemplo anterior, usamos el R.Content Func, que almacena el archivo como una cadena. Esto es práctico al descargar archivos pequeños. Sin embargo, al descargar archivos grandes, la función no se encargará de escribir los datos solicitados a la vez.

Para resolver esto, necesitamos descargar el archivo como transmisiones. Por lo tanto, podemos usar el R.función iter_content y establecer el parámetro de transmisión en verdadero.

Esto se debe a que usar el R.La función content () con el parámetro de transmisión a verdadero solo mantendrá la conexión y la respuesta abierta y no lee el archivo especificado.

El r.La función iter_content nos permite resolver esto.

Un ejemplo es como se muestra:

Solicitudes de importación
url = "https: // hastie.SU.dominios/islr2/islrv2_website.PDF "
R = solicitudes.Get (URL, tampable_redirects = true, stream = true)
con abierto ('islrv2.pdf ',' wb ') como archivo:
para un trozo en r.iter_content (chunk_size = 1024):
Si fragmenta:
archivo.Escribir (trozo)


El código anterior utiliza un bucle for para escribir los fragmentos de datos (1024 bytes cada uno) al archivo especificado.

Ejemplo 3 - Comprobación del tipo de archivo antes de descargar

Podemos verificar el tipo de contenido recibido de los encabezados. Entonces podemos usar este valor para verificar si el archivo que deseamos descargar es correcto.

Por ejemplo, si queremos descargar un archivo ISO y recibir HTML o tipo de texto, sabemos que este es un archivo incorrecto y cerrar la conexión.

Un código de ejemplo es como se muestra:

Solicitudes de importación
url = "https: // cdimage.debian.org/Debian-CD/Current/AMD64/ISO-DVD/Debian-11.4.0-amd64-dvd-1.Yo asi"
R = solicitudes.Get (URL, tampable_redirects = true, stream = true)
H = solicitudes.Cabeza (URL, tampable_redirects = verdadero)
encabezado = h.encabezado
content_type = encabezado.Get ('Content-Type')
Si 'html' en content_type.más bajo():
riñonal.cerca()
Imprimir ("Tipo de archivo incorrecto")
Si 'text' en content_type ().más bajo():
riñonal.cerca()
Imprimir ("Tipo de archivo incorrecto")
demás:
con abierto ('islrv2.ISO ',' WB ') como archivo:
para un trozo en r.iter_content (chunk_size = 1024):
Si fragmenta:
archivo.Escribir (trozo)

Clausura

Aprendió a descargar un archivo usando el módulo de solicitudes de python en este artículo. También aprendió a descargar archivos grandes.

Gracias por leer!!