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
			
							Estrarre dati da pagine web con accesso login e password
Estrarre dati da pagine web con accesso login e password
- Allegati
- 
			
		
		
				- EstrarreDalWeb.ods
- (26.01 KiB) Scaricato 855 volte
 
					Ultima modifica di unlucky83 il giovedì 16 ottobre 2014, 21:03, modificato 2 volte in totale.
									
			
						
							LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
			
						Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Re: Estrarre dati da pagine web con accesso login e password
E quando questo non succede??unlucky83 ha scritto: 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).
Se la pagina non è quella desiderata, o per meglio dire, avete scaricato la pagina che visualizzerebbe un utente senza aver fornito le credenziali di accesso, dovete sapere che la causa sono i cookie sbagliati.
Potrebbero essere sbagliati per vari motivi:
1)non si è sufficientemente competenti nell'osservare il file sorgente della pagina web di login e quindi si passano nomi di variabili errati o insufficienti per il sito specifico
2)il sito non è un sito http, ma uno più sicuro, un https
3)altre cause misteriore
Quindi che si fà? Si rinuncia al progetto?
Io di solito scendo ad un compromesso e vi spiego in cosa consiste.
1)Esporto i cookies del mio browser in un file (Firefox ha più di un'estensione da poter istallare per tale scopo)
2)invece di mettere nella mia macro, i due comandi di "wget" (denominati nel precedente post "comando1" e "comando2"),adopero solo il secondo comando, facendo caricare a wget i cookies che mi sono esportato manualmente dal browser.
Tutto così funzionerà a meraviglia, fino a che i cookies non scadranno e/o non si cambia la password per l'accesso al sito.
Prossimamente fornirò un allegato idoneo per seguire questa procedura, così potrete provarlo anche con il nostro forum, che appunto è un https://

LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
			
						Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Re: Estrarre dati da pagine web con accesso login e password
Se invece la macro va a buon fine e vi dice che ha creato il file, ma non lo trovate salvato sul vostro pc, probabilmente questo è successo perchè la cartella di destinazione (la stessa in cui avete salvato il mio file ods), presenta degli spazi.
E' sufficiente modificare un rigo della macro nel modo seguente:
Sostituite con 
p.s.
E' sconsigliato avere spazi nei nomi delle cartelle, anche windows lo ha capito, ma in xp gli spazi ancora venivano usati
C:\Documents and Settings\...
			
			
									
						
							E' sufficiente modificare un rigo della macro nel modo seguente:
Sostituite
Codice: Seleziona tutto
fileout=path & nomefileoutputCodice: Seleziona tutto
fileout=chr(34) & path & nomefileoutput & chr(34)E' sconsigliato avere spazi nei nomi delle cartelle, anche windows lo ha capito, ma in xp gli spazi ancora venivano usati
C:\Documents and Settings\...
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
			
						Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui

