≡ Menu

Download delle Foto da Instagram con Python e Instaloader

Il web scraping è una tecnica essenziale per l’elaborazione dei dati. Un’applicazione comune è il download di foto da piattaforme di social media come Instagram.

Per questa attività, utilizzeremo Python, un linguaggio di programmazione popolare, e Instaloader, una libreria che permette di scaricare foto, video, e altre informazioni da Instagram.

Vediamo come implementare questo in Python con il seguente script:

import instaloader
import logging

def download_instagram_profile(username):
    try:
        # Create a Logger
        logger = logging.getLogger('instaloader')
        logger.setLevel(logging.INFO)

        # Set up logging to console
        console = logging.StreamHandler()
        console.setLevel(logging.INFO)

        # Add the console handler to the logger
        logger.addHandler(console)

        # Create an instance of Instaloader and download the profile
        L = instaloader.Instaloader()
        L.download_profile(username, profile_pic_only=False)
        print(f"Download of {username}'s photos completed.")
    except Exception as e:
        print(f"An error occurred: {e}")

def main():
    username = input("Enter Instagram username: ")
    download_instagram_profile(username)

if __name__ == "__main__":
    main()

Analisi del Codice

  1. import instaloader: Importiamo la libreria instaloader per utilizzare le sue funzionalità.
  2. import logging: Importiamo il modulo logging per registrare gli eventi durante l’esecuzione del programma.
  3. Definiamo una funzione download_instagram_profile(username) che gestirà il processo di download. Prende un argomento: username, il nome utente Instagram da cui vogliamo scaricare le foto.
  4. Dentro download_instagram_profile(username), utilizziamo un blocco try-except per gestire eventuali errori che potrebbero verificarsi durante l’esecuzione del programma.
  5. logger = logging.getLogger('instaloader'): Creiamo un logger che registrerà eventi specifici di Instaloader.
  6. logger.setLevel(logging.INFO): Impostiamo il livello di logging su INFO in modo che vengano registrate tutte le informazioni rilevanti.
  7. console = logging.StreamHandler(): Creiamo un gestore di logging che invierà i log alla console.
  8. console.setLevel(logging.INFO): Impostiamo il livello del gestore di console su INFO.
  9. logger.addHandler(console): Aggiungiamo il gestore di console al logger.
  10. L = instaloader.Instaloader(): Creiamo un’istanza dell’oggetto Instaloader.
  11. L.download_profile(username, profile_pic_only=False): Utilizziamo il metodo download_profile() per scaricare il profilo Instagram specificato. Impostiamo profile_pic_only=False per scaricare tutte le foto dell’utente, non solo la foto del profilo.
  12. print(f"Download of {username}'s photos completed."): Stampiamo un messaggio quando il download è completo.
  13. except Exception as e: Nel caso si verifichi un’eccezione durante l’esecuzione del codice all’interno del blocco try, la catturiamo e stampiamo un messaggio di errore.
  14. Definiamo la funzione main(), che avvia il processo chiedendo all’utente di inserire un nome utente Instagram e quindi chiama download_instagram_profile(username).
  15. if __name__ == "__main__": main(): Questo codice garantisce che main() venga chiamato solo quando lo script viene eseguito direttamente, e non quando è importato come modulo.

Con Python e la libreria Instaloader possiamo, con questo script, scaricare foto da un profilo Instagram. Abbiamo anche implementato la registrazione di logging per monitorare l’avanzamento del download. Ricordate: è importante rispettare i termini di servizio delle piattaforme di social media e assicurarsi di avere il permesso di scaricare qualsiasi contenuto.

{ 0 comments… add one }

Rispondi