Instaloader: OSINT e Download Dati da Instagram

Instaloader è un’applicazione open-source, scritta in Python, progettata per scaricare contenuti da Instagram, come foto, video, storie, commenti, e persino informazioni su profili pubblici, post e hashtag. Se stai cercando un modo semplice e affidabile per automatizzare il download dei tuoi contenuti Instagram preferiti o per raccogliere dati per un’analisi, Instaloader è la soluzione ideale.

Un uomo in trench e cappello di feltro tiene in mano una lente di ingrandimento, esaminando uno schermo di computer vecchio stile che mostra un profilo di social media. La stanza è scarsamente illuminata, con documenti sparsi sulla scrivania e sulle pareti, creando un'atmosfera da detective.

Cos’è Instaloader?

Instaloader è uno strumento che consente di scaricare contenuti da Instagram in modo semplice e diretto. Può essere utilizzato per fare il backup di un account, estrarre dati da un hashtag o un profilo, o anche per analizzare commenti e interazioni in modo sistematico. Grazie alla sua natura open-source, è costantemente aggiornato dalla community e può essere personalizzato per adattarsi a specifiche esigenze.

Caratteristiche principali di Instaloader:

  • Download di foto e video: Instaloader consente di scaricare foto e video da post, storie, caroselli e IGTV. Può essere configurato per scaricare anche le immagini ad alta risoluzione.
  • Backup completo dei profili: Puoi fare un backup completo di un account Instagram, scaricando tutte le foto, i video, i commenti, le storie e le informazioni di un profilo, anche quelli di un account privato (se hai accesso tramite il tuo login).
  • Supporto per Hashtag e Luoghi: Instaloader permette di scaricare post legati a specifici hashtag o luoghi, utile per analizzare contenuti pubblicati sotto determinati temi o location.
  • Gestione automatica delle sessioni: È possibile eseguire il login direttamente tramite Instaloader, in modo da scaricare contenuti da account privati o fare scraping di dati protetti da login. Instaloader supporta anche la gestione dei cookie per mantenere attiva la sessione.
  • Personalizzazione: Essendo uno strumento open-source, gli utenti possono modificarlo per soddisfare esigenze particolari. Instaloader offre diverse opzioni da riga di comando che permettono di configurare l’output dei dati, come la scelta delle dimensioni delle immagini o la creazione di file JSON con metadati.

Come utilizzarlo:

Per utilizzarlo, è sufficiente salvare questo script come file .sh ed eseguirlo per fare in modo che installi tutto il necessario per il funzionamento del programma.

#!/bin/bash

# Funzione di fallback
fallback() {
    echo "Errore rilevato! Avvio del fallback..."

    # Aggiorna i repository del sistema
    echo "Aggiornamento dei repository..."
    sudo apt update

    # Aggiorna tutti i pacchetti del sistema
    echo "Aggiornamento dei pacchetti..."
    sudo apt upgrade -y

    # Assicurati che Python3 sia installato
    if ! command -v python3 &> /dev/null; then
        echo "Python3 non trovato! Installazione in corso..."
        sudo apt install -y python3
    else
        echo "Python3 già installato: $(python3 --version)"
    fi

    # Assicurati che il repository 'universe' sia abilitato
    echo "Abilitazione del repository 'universe' se necessario..."
    sudo add-apt-repository universe
    sudo apt update

    # Prova a installare python3-pip
    echo "Tentativo di installazione di python3-pip..."
    if ! sudo apt install -y python3-pip; then
        echo "Impossibile installare pip3 dai repository! Installazione manuale in corso..."

        # Scarica e installa pip3 manualmente
        echo "Download dello script get-pip.py..."
        curl -sS https://bootstrap.pypa.io/get-pip.py -o get-pip.py
        echo "Esecuzione dello script per installare pip3..."
        sudo python3 get-pip.py
        rm -f get-pip.py
    fi

    # Verifica che pip3 sia stato installato correttamente
    if command -v pip3 &> /dev/null; then
        echo "pip3 installato correttamente: $(pip3 --version)"
    else
        echo "Errore: pip3 non è stato installato correttamente!"
        exit 1
    fi

    echo "Fallback completato con successo!"
}

# Funzione principale
main() {
    echo "Esecuzione del primo script..."

    # Funzione per verificare e installare un pacchetto
    check_and_install() {
        local package=$1
        local binary_check=$2
        if ! command -v "$binary_check" &> /dev/null; then
            echo "$package non trovato! Installazione in corso..."
            sudo apt update
            sudo apt install -y "$package"
        else
            echo "$package già installato: $("$binary_check" --version 2>/dev/null || echo "Versione sconosciuta")"
        fi
    }

    # Controlla e installa Python, pip e git se necessari
    check_and_install python3 python3
    check_and_install python3-pip pip3
    check_and_install git git

    # Verifica che il modulo venv di Python sia disponibile
    if ! python3 -m venv --help &> /dev/null; then
        echo "Il modulo venv di Python non è installato! Installazione in corso..."
        sudo apt install -y python3-venv
    fi

    # Crea un ambiente virtuale
    echo "Creazione di un ambiente virtuale chiamato 'instaloader-env'..."
    python3 -m venv instaloader-env

    # Attiva l'ambiente virtuale
    echo "Attivazione dell'ambiente virtuale..."
    source instaloader-env/bin/activate

    # Aggiorna pip all'ultima versione
    echo "Aggiornamento di pip..."
    pip install --upgrade pip --break-system-packages

    # Installa il pacchetto 'certifi' e altre dipendenze
    echo "Installazione delle dipendenze necessarie (certifi e requests)..."
    pip install certifi requests --break-system-packages

    # Clona o aggiorna il repository di Instaloader
    echo "Clonazione del repository di Instaloader da GitHub..."
    if [ ! -d "instaloader" ]; then
        git clone https://github.com/instaloader/instaloader.git
    else
        echo "Il repository di Instaloader esiste già. Aggiornamento in corso..."
        cd instaloader && git pull && cd ..
    fi

    # Installa Instaloader dal repository
    echo "Installazione di Instaloader dal codice sorgente..."
    cd instaloader
    pip install . --break-system-packages || {
        echo "Installazione da sorgente fallita! Tentativo di reinstallazione con pip..."
        pip install instaloader
    }
    cd ..

    # Verifica l'installazione
    echo "Verifica dell'installazione di Instaloader..."
    if ! command -v instaloader &> /dev/null; then
        echo "Errore: Instaloader non è stato installato correttamente!"
        exit 1
    else
        echo "Instaloader installato correttamente: $(instaloader --version)"
    fi

    # Istruzioni finali
    echo "Per attivare l'ambiente virtuale in futuro, esegui:"
    echo "source instaloader-env/bin/activate"
    echo "Per disattivare l'ambiente virtuale, esegui:"
    echo "deactivate"

    echo "Script completato con successo!"
}

# Gestione errori: esegui il fallback se il main fallisce
trap fallback ERR

# Avvia il main
main

Cosa fa lo script scritto sopra:

Questo script è un processo automatizzato per configurare un ambiente di sviluppo Python per l’installazione e l’utilizzo di Instaloader, uno strumento di scraping per Instagram. Ecco cosa fa:

Funzione di fallback (fallback):

  • Se ci sono errori durante l’esecuzione dello script, viene eseguita questa funzione.
  • Aggiorna i repository del sistema (sudo apt update) e i pacchetti (sudo apt upgrade -y).
  • Verifica se Python3 è installato, e se non lo è, lo installa.
  • Abilita il repository “universe” se non è già abilitato.
  • Tenta di installare pip3 (gestore di pacchetti Python). Se non riesce tramite i repository, lo scarica e lo installa manualmente.
  • Verifica che pip3 sia correttamente installato.

Funzione principale (main):

  • Esegue il processo principale di configurazione e installazione.
  • Controlla se i pacchetti necessari (Python3, pip3, e git) sono installati, e se non lo sono, li installa.
  • Verifica che il modulo venv di Python sia disponibile (utile per creare ambienti virtuali). Se non presente, lo installa.
  • Crea un ambiente virtuale chiamato instaloader-env.
  • Attiva l’ambiente virtuale creato.
  • Aggiorna pip all’ultima versione.
  • Installa le dipendenze necessarie come certifi e requests.
  • Clona il repository di Instaloader da GitHub o aggiorna il repository se già esistente.
  • Installa Instaloader dal codice sorgente. Se fallisce, tenta l’installazione tramite pip.
  • Verifica che Instaloader sia stato installato correttamente.
  • Fornisce istruzioni su come attivare e disattivare l’ambiente virtuale.

Gestione degli errori:

  • Utilizza il comando trap per eseguire la funzione di fallback nel caso si verifichino errori durante l’esecuzione della funzione principale (main).

Come funziona:

  • Lo script tenta di installare e configurare tutto il necessario per l’utilizzo di Instaloader.
  • Se qualcosa va storto durante l’esecuzione del processo, lo script automaticamente passa alla funzione di fallback per ripristinare la configurazione di base (installando Python, pip, etc.).

In pratica, questo script è utile per preparare un sistema per l’uso di Instaloader e per gestire eventuali problemi di installazione o configurazione.

Come avviare instaloader:

sh instaloader_setup.sh
Una finestra di terminale aperta su un sistema operativo a tema scuro, che mostra un utente che esegue il comando sh instaloader_setup.sh nella directory Desktop. Un logo di drago è debolmente visibile sullo sfondo.
Una finestra di terminale che mostra un elenco di nomi di pacchetti software insieme alle loro versioni Python su un sistema Kali Linux. Il testo indica l'elaborazione di elenchi di pacchetti e aggiornamenti, con una nota di avanzamento che recita Reading package lists... 83%.
Screenshot di un terminale in un ambiente a tema scuro che mostra il processo di installazione del pacchetto Python instaloader. Mostra comandi, percorsi di sistema e avvisi relativi alla configurazione PATH. Il prompt di input è pronto per nuovi comandi.

Come usare Instaloader:

Effettuare il Login (Autenticazione)

Se desideri scaricare contenuti da profili privati a cui sei follower, devi prima effettuare il login con il tuo account Instagram.

Comando per effettuare il login:

instaloader -l <tuo_nome_utente>

Il flag -l indica login quindi dovete collegarvi con i dati del vostro profilo Instagram.

Esegui il comando sostituendo <tuo_nome_utente> con il tuo nome utente Instagram. Ti verrà chiesto di inserire la tua password. Una volta effettuato il login, Instaloader memorizza il tuo accesso, quindi non dovrai ripetere il login a ogni utilizzo, a meno che tu non faccia logout.

Screenshot di una finestra terminale che mostra un errore nell'utilizzo del comando Instaloader. Il comando con argomento mancante è instaloader --login. Il prompt del terminale viene visualizzato di nuovo dopo il messaggio di errore.

Scaricare il Profilo di un Utente (Pubblico o Privato)

Una volta effettuato il login, puoi iniziare a scaricare contenuti. Se il profilo è pubblico, puoi scaricare il contenuto senza problemi. Se è privato, dovrai essere follower dell’utente per poter scaricare i suoi post.

Comando per scaricare il contenuto di un profilo:

instaloader profile <username>

Esempio:

instaloader profile thisisbillgates

Una finestra terminale a tema scuro che mostra un'interfaccia a riga di comando con una serie di comandi e output relativi al download e al salvataggio di immagini dai social media tramite Instaloader. Lo sfondo mostra un logo di Kali Linux.

Scaricare un Post Specifico

Se desideri scaricare un post specifico, devi fornire l’URL del post.

Comando per scaricare un post:

instaloader <url_post>

Sostituisci <url_post> con l’URL del post di Instagram che vuoi scaricare.

Esempio:

instaloader https://www.instagram.com/p/C8-Q2YuyyeE/

Scaricare le Storie di un Profilo

Se vuoi scaricare le storie di un profilo, puoi utilizzare il comando stories.

Comando per scaricare le storie di un profilo:

instaloader stories <username>

Scaricare i Commenti di un Post

Per scaricare anche i commenti di un post specifico, puoi aggiungere l’opzione --comments al comando.

Comando per scaricare i commenti di un post:

instaloader --comments <url_post>

Esempio:

instaloader --comments https://www.instagram.com/p/C8-Q2YuyyeE/

Visualizzare i Metadati

Se desideri scaricare anche i metadati (come le informazioni di geolocalizzazione, i like, e altre informazioni), puoi usare il comando con l’opzione --metadata.

Comando per scaricare post con metadati:

instaloader --metadata profile <username>

Disattivare l’Ambiente Virtuale (Se Utilizzato)

Se hai creato un ambiente virtuale per l’uso di Instaloader, puoi disattivarlo quando hai finito:

Comando per disattivare l’ambiente virtuale:

deactivate

Ecco il risultato del profilo selezionato completo, ovviamente ho interrotto i download dei file ma qui vi mostro i risultati:

Uno schermo di computer che mostra un file manager su un desktop a tema scuro. Sono visibili vari file e cartelle, tra cui immagini e documenti, disposti in una griglia. Il menu in alto mostra opzioni come File, Modifica e Visualizza.
Un uomo sorridente con i capelli grigi e gli occhiali, che indossa un maglione nero sopra una camicia, è in piedi su uno sfondo blu scuro.

Ulteriori informazioni:

Instaloader è uno strumento potente e versatile per scaricare contenuti da Instagram. Dopo aver effettuato il login, puoi facilmente scaricare profili, post, storie e altro ancora, utilizzando comandi semplici dalla linea di comando. Se vuoi personalizzare ulteriormente i download, ci sono numerosi parametri che ti permettono di filtrare i contenuti e raccogliere metadati aggiuntivi.