Estrarre dati da pagine web con accesso login e password
Inviato: sabato 11 ottobre 2014, 21:42
ESTRARRE DATI IN CALC DA UNA PAGINA WEB CHE RICHIEDE ACCESSO CON LOGIN E PASSWORD
L'accesso ad una pagina che è visibile dopo aver effettuato il login, richiede la gestione dei cookie.
Al momento la funzione:
Inserisci>Collegamento a dati esterni
Non consente di gestire i cookie (infatti non c'è alcuna opzione per impostare i valori di login e password)
Per ovviare a questo inconveniente propongo di dividere il problema in due problemi, per i motivi che vi esporrò in seguito:
1- Scaricare la pagina desiderata sul proprio pc
2- Estrarre i dati dalla copia della pagina in locale, non quindi direttamente dalla pagina sul web.
Affrontiamo il primo punto
1- Scaricare la pagina desiderata sul proprio pc
È possibile farlo, istallando sul proprio pc un software leggero ma potente, chiamato “wget”.
wget è un programma da linea di comando (ovvero viene eseguito dal prompt dei comandi o dal terminale) che consente di scaricare anche interi siti web.
Le opzioni più interessanti, per il nostro scopo sono:
--save-cookies
Consente di salvare i cookies
--keep-session-cookies
Mantiene la sessione di cookies attiva
--post-data
Consente di passare i parametri del metodo POST. I riquadri di inserimento di login e password nelle pagine web, usano proprio il metodo POST.
--load-cookies
Carica i cookies salvati
--output-document
Percorso e nome del documento di output, ovvero il percorso e nome della nostra pagina scaricata sul pc.
Se usassimo direttamente un terminale linux dovremmo dare i seguenti due comandi:
comando1: wget -nv –save-cookies nomefilecookies --keep-session-cookies --post-data 'id=username&pwd=password' -O - paginawebdilogin
comando2: wget -nv --load-cookies nomefilecookies --keep-session-cookies ' --output-document=nomefileoutput paginawebdascaricare
Invece usando il prompt dei comandi di Windows
comando1: C:\Program Files\GnuWin32\bin\wget -nv –save-cookies nomefilecookies --keep-session-cookies --post-data 'id=username&pwd=password' -O - paginawebdilogin
comando2: C:\Program Files\GnuWin32\bin\wget -nv --load-cookies nomefilecookies --keep-session-cookies ' --output-document=nomefileoutput paginawebdascaricare
Vi spiego alcune voci:
-nomefilecookies
Nome del file di salvataggio dei cookies es: “C:\percorso\mycookies.htm”
-nomefileoutput
Nome della pagina web scaricata sul nostro pc es: “C:\percorso\Dati.htm”
-paginawebdilogin
Url della pagina di login es: “http://bongo4ever.altervista.org/index.php”
-paginawebdascaricare
Url della pagina contenente i dati es: “http://bongo4ever.altervista.org/user.php”
-username
Vostro nome di login es: “Pippo”
-password
Vostra password es: “Pluto”
-C:\Program Files\GnuWin32\bin\
Questo è il percorso di istallazione del programma wget predefinito per windows 7. Per altre versioni di windows o per altre release del programma wget, questo percorso può variare.
-id e pwd
Questi due elementi, sono i nomi, in genere, delle variabili usati nella pagina web per identificare login e password.
Bisogna verificare i nomi corretti guardando il file sorgente della pagina di login o se il browser ha la funzione “ispezionare l'elemento”, usarla nei campi di inserimento.
Prendendo per esempio:
http://bongo4ever.altervista.org/index.php
è un vecchio sito che ho aperto ai tempi in cui partecipavo ad un gioco online
Premiamo ctrl+u per visualizzare il file sorgente e facendo delle ricerche (login e password), si scopre che i nomi usati sono
name al posto di id
pass al posto di pwd
Per comodità, i valori di tutte queste variabili le inserisco in delle celle e userò nu pulsante che avvierà la macro che effettuerà il download della pagina.
La macro preleverà il contenuto delle celle e tramite al comando “Shell”, eseguirà le due righe di comando, senza la necessità di dover aprire alcun terminale o prompt dei comandi.
Sempre per comodità, i due file scaricati (il file cookies e la pagina desiderata), verranno salvati nella stessa directory in cui avete salvato il seguente file.
Quando aprirete il file in locale con il vostro browser, se tutto è andato a buon fine, vedrete la pagina desiderata tale e quale a quella del sito (priva delle immagini).
In allegato, trovate il file che fa quanto detto, con username e password valide per accedere al sito che ho preso come esempio
Provate anche voi:
-paginawebdilogin “http://bongo4ever.altervista.org/index.php”
-paginawebdascaricare “http://bongo4ever.altervista.org/user.php”
-username “Pippo”
-password “Pluto”
-name al posto di id
-pass al posto di pwd
L'accesso ad una pagina che è visibile dopo aver effettuato il login, richiede la gestione dei cookie.
Al momento la funzione:
Inserisci>Collegamento a dati esterni
Non consente di gestire i cookie (infatti non c'è alcuna opzione per impostare i valori di login e password)
Per ovviare a questo inconveniente propongo di dividere il problema in due problemi, per i motivi che vi esporrò in seguito:
1- Scaricare la pagina desiderata sul proprio pc
2- Estrarre i dati dalla copia della pagina in locale, non quindi direttamente dalla pagina sul web.
Affrontiamo il primo punto
1- Scaricare la pagina desiderata sul proprio pc
È possibile farlo, istallando sul proprio pc un software leggero ma potente, chiamato “wget”.
wget è un programma da linea di comando (ovvero viene eseguito dal prompt dei comandi o dal terminale) che consente di scaricare anche interi siti web.
Le opzioni più interessanti, per il nostro scopo sono:
--save-cookies
Consente di salvare i cookies
--keep-session-cookies
Mantiene la sessione di cookies attiva
--post-data
Consente di passare i parametri del metodo POST. I riquadri di inserimento di login e password nelle pagine web, usano proprio il metodo POST.
--load-cookies
Carica i cookies salvati
--output-document
Percorso e nome del documento di output, ovvero il percorso e nome della nostra pagina scaricata sul pc.
Se usassimo direttamente un terminale linux dovremmo dare i seguenti due comandi:
comando1: wget -nv –save-cookies nomefilecookies --keep-session-cookies --post-data 'id=username&pwd=password' -O - paginawebdilogin
comando2: wget -nv --load-cookies nomefilecookies --keep-session-cookies ' --output-document=nomefileoutput paginawebdascaricare
Invece usando il prompt dei comandi di Windows
comando1: C:\Program Files\GnuWin32\bin\wget -nv –save-cookies nomefilecookies --keep-session-cookies --post-data 'id=username&pwd=password' -O - paginawebdilogin
comando2: C:\Program Files\GnuWin32\bin\wget -nv --load-cookies nomefilecookies --keep-session-cookies ' --output-document=nomefileoutput paginawebdascaricare
Vi spiego alcune voci:
-nomefilecookies
Nome del file di salvataggio dei cookies es: “C:\percorso\mycookies.htm”
-nomefileoutput
Nome della pagina web scaricata sul nostro pc es: “C:\percorso\Dati.htm”
-paginawebdilogin
Url della pagina di login es: “http://bongo4ever.altervista.org/index.php”
-paginawebdascaricare
Url della pagina contenente i dati es: “http://bongo4ever.altervista.org/user.php”
-username
Vostro nome di login es: “Pippo”
-password
Vostra password es: “Pluto”
-C:\Program Files\GnuWin32\bin\
Questo è il percorso di istallazione del programma wget predefinito per windows 7. Per altre versioni di windows o per altre release del programma wget, questo percorso può variare.
-id e pwd
Questi due elementi, sono i nomi, in genere, delle variabili usati nella pagina web per identificare login e password.
Bisogna verificare i nomi corretti guardando il file sorgente della pagina di login o se il browser ha la funzione “ispezionare l'elemento”, usarla nei campi di inserimento.
Prendendo per esempio:
http://bongo4ever.altervista.org/index.php
è un vecchio sito che ho aperto ai tempi in cui partecipavo ad un gioco online
Premiamo ctrl+u per visualizzare il file sorgente e facendo delle ricerche (login e password), si scopre che i nomi usati sono
name al posto di id
pass al posto di pwd
Per comodità, i valori di tutte queste variabili le inserisco in delle celle e userò nu pulsante che avvierà la macro che effettuerà il download della pagina.
La macro preleverà il contenuto delle celle e tramite al comando “Shell”, eseguirà le due righe di comando, senza la necessità di dover aprire alcun terminale o prompt dei comandi.
Sempre per comodità, i due file scaricati (il file cookies e la pagina desiderata), verranno salvati nella stessa directory in cui avete salvato il seguente file.
Quando aprirete il file in locale con il vostro browser, se tutto è andato a buon fine, vedrete la pagina desiderata tale e quale a quella del sito (priva delle immagini).
In allegato, trovate il file che fa quanto detto, con username e password valide per accedere al sito che ho preso come esempio
Provate anche voi:
-paginawebdilogin “http://bongo4ever.altervista.org/index.php”
-paginawebdascaricare “http://bongo4ever.altervista.org/user.php”
-username “Pippo”
-password “Pluto”
-name al posto di id
-pass al posto di pwd