Saltar al contenido principal

Práctica 106. Libraría requests e cURL

Nesta práctica imos intentar automatizar a descarga de imaxes dunha rede social.

O principal impedimento é a autorización: o servidor vai comprobar que a petición da imaxe teña permiso para poder descargala. Para iso, obteremos as cabeceiras e cookies dun navegador, para despois cun script simular que é o propio navegador quen fai as peticións aportando a nosa autorización.


Requisitos


Apartado 1

Neste primeiro apartado obteremos o ficheiro HAR para extraer a información necesaria para o segundo apartado.

Realiza os seguintes pasos:

  • Abre unha ventá privada de Firefox.
  • Entra nunha rede social que conteña fotos. Podes iniciar sesión se é preciso.
  • Pulsa F12 para abrir as Herramientas para desarrolladores e vaite á lapela de Red.
  • Actualiza a páxina web.
  • Vaite á primeira petición GET. Preme botón dereito Copiar ValorCopiar como cURL (POSIX).
  • Vaite á aplicación web curlconverter.com e pega o valor copiado. Selecciona a lapela Python. Obterás o código para realizar esa chamada GET desde Python.
  • Descarga o ficheiro HAR con todas as peticións da web anterior.

Apartado 2

Neste segundo apartado realizaremos as peticións das imaxes simulando que as facemos desde o navegador.

Crea un script en Python que:

  • Lea a información do ficheiro HAR.
  • Filtre todas as respostas que conteñan unha imaxe. Utiliza os tipos MIME.
  • Almacena a URL de todas esas imaxes nun ficheiro con nome images_urls.txt.
  • Descarga todas as imaxes a un directorio images. As imaxes gárdaas co seu nome orixinal, incluindo a súa extensión orixinal.

Para crear o script:

  • Utilizaremos a requests de Python, unha das librarías máis populares e sinxelas para facer peticións HTTP. Serve para conectarse a sitios web, consumir APIs, enviar datos, descargar ficheiros, etc.
  • En cada petición enviaremos todas as cabeceiras que enviou o navegador Firefox.
  • Debemos ter en conta que hai imaxes que están codificadas en Base64.