View Full Version : Non capisco la sintassi del wget :(
Matrixbob
05-01-2007, 17:52
>wget -o "directory di output" -i "file di input"
Non capisco la sintassi del wget.
Io vorrei usale le opz:
-P, --directory-prefix=PREFISSO salva i file in PREFISSO/...
--cut-dirs=NUMERO ignora NUMERO componenti delle directory
remote.
x salvare in 1 directory il file.
E:
-D, --domains=LISTA lista di domini accettati, separati da
virgole.
--exclude-domains=LISTA lista di domini rifiutati, separati da
virgole.
--follow-ftp segue i link FTP dai documenti HTML.
--follow-tags=LISTA lista di tag HTML, separati da virgole,
che vengono seguiti nello scaricamento.
--ignore-tags=LISTA lista di tag HTML, separati da virgole,
che vengono ignorati.
x ignorare i TAG che non voglio prendere tipo <i></i>
Secondo voi come si usano?!
Matrixbob
05-01-2007, 17:53
Ho provato anche così:
wget -D i,br http://www.repubblica.it
e così:
wget --ignore-tags=<br> http://www.repubblica.it
, ma niente da fare! :stordita: :O
Matrixbob
05-01-2007, 17:54
Per completezza riporto il suo HELP:
GNU Wget 1.10.2, un programma non interattivo per scaricare file dalla rete.
Uso: wget [OPZIONE]... [URL]...
Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle corte.
Avvio:
-V, --version mostra la versione di Wget ed esce.
-h, --help mostra questo aiuto.
-b, --background va in background dopo l'avvio.
-e, --execute=COMANDO esegue COMANDO come se fosse scritto in ".wgetrc".
File di log e di input:
-o, --output-file=FILE registra i messaggi su FILE.
-a, --append-output=FILE accoda i messaggi a FILE.
-d, --debug mostra le informazioni di debug.
-q, --quiet silenzioso (nessun output).
-v, --verbose prolisso (predefinito).
-nv, --no-verbose meno prolisso, ma non silenzioso.
-i, --input-file=FILE scarica gli URL scritti in FILE.
-F, --force-html tratta il file di input come HTML.
-B, --base=URL aggiunge URL ai link relativi quando si usa -F
sul file indicato con -i.
Scaricamento:
-t, --tries=NUMERO imposta il NUMERO di tentativi (0 = illimitati).
--retry-connrefused riprova anche se la connessione è rifiutata.
-O --output-document=FILE scrive tutti i documenti in un singolo FILE.
-nc, --no-clobber non scaricare file già esistenti.
-c, --continue riprende a scaricare un file parzialmente
scaricato.
--progress=TIPO sceglie il TIPO di misurazione di progresso.
-N, --timestamping non scarica file più vecchi di quelli locali.
-S, --server-response mostra le risposte del server.
--spider non scarica niente.
-T, --timeout=SECONDI imposta tutti i timeout a SECONDI.
--dns-timeout=SECONDI imposta il timeout per la risoluzione del DNS
a SECONDI.
--connect-timeout=SECONDI imposta il timeout di connessione a SECONDI.
--read-timeout=SECONDI imposta il timeout di lettura a SECONDI.
-w, --wait=SECONDI aspetta SECONDI tra i vari download.
--waitretry=SECONDI aspetta 1...SECONDI tra i tentativi di
scaricamento.
--random-wait aspetta tra 0...2*WAIT secondi tra scaricamenti.
-Y, --proxy attiva esplicitamente l'uso del proxy.
--no-proxy disattiva esplicitamente l'uso del proxy.
-Q, --quota=NUMERO imposta la quota di scaricamento a NUMERO.
--bind-address=INDIRIZZO lega l'INDIRIZZO (nome dell'host o IP)
all'host locale.
--limit-rate=VELOCITÀ limita la VELOCITÀ di scaricamento in byte.
--no-dns-cache disattiva la cache per la risoluzione del DNS.
--restrict-file-names=SO limita i caratteri nei nomi dei file a quelli
permessi dal sistema operativo SO indicato.
-4, --inet4-only si connette solo a indirizzi IPv4.
-6, --inet6-only si connette solo a indirizzi IPv6.
--prefer-family=FAMIGLIA si connette di preferenza ad indirizzi della
FAMIGLIA specificata (IPv6, IPv4 o none).
--user=UTENTE imposta il nome utente ftp e http a UTENTE.
--password=PASS imposta la password ftp e http a PASS.
Directory:
-nd, --no-directories non crea directory.
-x, --force-directories forza la creazione di directory.
-nH, --no-host-directories non crea directory sull'host.
--protocol-directories usa il nome di protocollo nelle directory.
-P, --directory-prefix=PREFISSO salva i file in PREFISSO/...
--cut-dirs=NUMERO ignora NUMERO componenti delle directory
remote.
Opzioni HTTP:
--http-user=UTENTE imposta l'utente http a UTENTE.
--http-passwd=PASS imposta la password http a PASS.
--no-cache non permette la cache dei dati sul server.
-E, --html-extension salva con estensione ".html" i documenti HTML.
--ignore-length ignora il campo Content-Length degli header.
--header=STRINGA inserisce STRINGA tra gli header.
--proxy-user=UTENTE imposta il nome utente per il proxy a UTENTE.
--proxy-passwd=PASS imposta la password per il proxy a PASS.
--referer=URL include l'header "Referer: URL" nella richiesta
HTTP.
--save-headers salva gli header HTTP su file.
-U, --user-agent=AGENTE si identifica come AGENTE invece che come
Wget/VERSIONE.
--no-http-keep-alive disabilita l'HTTP keep-alive (connessioni
persistenti).
--no-cookies non usa i cookies.
--load-cookies=FILE carica i cookies dal FILE prima della sessione.
--save-cookies=FILE salva i cookies sul FILE dopo la sessione.
--keep-session-cookies carica e salva i cookies per la sessione
(non permanenti).
--post-data=STRINGA usa il metodo POST; spedisce STRINGA come dati.
--post-file=FILE usa il metodo POST; spedisce i contenuti del FILE.
Opzioni HTTPS (SSL/TLS):
--secure-protocol=PROT. sceglie il protocollo sicuro, uno tra auto,
SSLv2, SSLv3,e TLSv1.
--no-check-certificate non valida il certificato del server.
--certificate=FILE file di certificato del client.
--certificate-type=TIPO tipo di certificato del client, PEM o DER.
--private-key=FILE file della chiave privata.
--private-key-type=TIPO tipo di chiave privata, PEM o DER.
--ca-certificate=FILE file with the bundle of CA's.
--ca-directory=DIR directory dove è memorizzata la lista dei CA.
--random-file=FILE file con dati casuali per inizializzare
SSL PRNG.
--egd-file=FILE file naming the EGD socket with random data.
Opzioni FTP:
--ftp-user=UTENTE imposta l'utente ftp a UTENTE.
--ftp-password=PASS imposta la password ftp a PASS.
--no-remove-listing non elimina i file ".listing".
--no-glob disabilita il globbing FTP dei nome di file.
--no-passive-ftp disabilita la modalità di trasferimento passiva.
--retr-symlinks scarica i file (non le directory) puntati dai
link simbolici quando si è in modalità ricorsiva.
--preserve-permissions preserva i permessi remoti dei file.
Scaricamento ricorsivo:
-r, --recursive scaricamento ricorsivo.
-l, --level=NUMERO profondità massima di ricorsione
(inf o 0 = illimitata).
--delete-after elimina localmente i file dopo averli scaricati.
-k, --convert-links converte i link assoluti in relativi.
-K, --backup-converted salva il file X come X.orig prima di convertirlo.
-m, --mirror scorciatoia per -N -r -l inf --no-remove-listing.
-p, --page-requisites scarica tutte le immagini, ecc, necessarie per
visualizzare la pagina HTML.
--strict-comments tratta i commenti HTML in modalità strict (SGML).
Accetto/rifiuto ricorsivo:
-A, --accept=LISTA lista di estensioni accettate, separate da
virgole.
-R, --reject=LISTA lista di estensioni rifiutate, separate da
virgole.
-D, --domains=LISTA lista di domini accettati, separati da
virgole.
--exclude-domains=LISTA lista di domini rifiutati, separati da
virgole.
--follow-ftp segue i link FTP dai documenti HTML.
--follow-tags=LISTA lista di tag HTML, separati da virgole,
che vengono seguiti nello scaricamento.
--ignore-tags=LISTA lista di tag HTML, separati da virgole,
che vengono ignorati.
-H, --span-hosts visita anche altri host quando si è in
modalità ricorsiva.
-L, --relative segue solo i link relativi.
-I, --include-directories=LISTA lista di directory permesse.
-X, --exclude-directories=LISTA lista di directory escluse.
-np, --no-parent non risale alla directory superiore.
Inviare segnalazioni di bug e suggerimenti a <bug-wget@gnu.org>.
x salvare in 1 directory il file.
wget -P path
x ignorare i TAG che non voglio prendere tipo <i></i>
L'opzione --ignore-tags non elimina i tags dal sorgente della pagina ma ad elencare quali tags ignorare quando si attiva il download recorsivo.
man wget:
--ignore-tags=list
This is the opposite of the --follow-tags option. To skip certain
HTML tags when recursively looking for documents to download, spec-
ify them in a comma-separated list.
In the past, this option was the best bet for downloading a single
page and its requisites, using a command-line like:
wget --ignore-tags=a,area -H -k -K -r http://<site>/<document
>
However, the author of this option came across a page with tags
like "<LINK REL="home" HREF="/">" and came to the realization that
specifying tags to ignore was not enough. One can't just tell Wget
to ignore "<LINK>", because then stylesheets will not be down-
loaded. Now the best bet for downloading a single page and its
requisites is the dedicated --page-requisites option.
Matrixbob
10-01-2007, 17:18
Grazie.
Matrixbob
11-01-2007, 14:18
Niente non ci riesco:
http://img224.imageshack.us/img224/6735/wgetld0.gif
EDIT
OK c'è l'ho fatta così:
http://img149.imageshack.us/img149/9179/wget2oc5.gif
Matrixbob
27-04-2007, 10:37
Dovrei lanciare il wget in modo silenzioso che però mi vada a scrivere 1 file di log.
Per evitare che stampi inutilmente a video, ma mi faccia il report in 1 file.
Come si fa?!
eclissi83
27-04-2007, 14:36
Dovrei lanciare il wget in modo silenzioso che però mi vada a scrivere 1 file di log.
Per evitare che stampi inutilmente a video, ma mi faccia il report in 1 file.
Come si fa?!
vale per tutti i comandi:
$TUO_COMANDO >> file_dove_vuoi_salvare
non so pero' se da windows funziona...
Matrixbob
27-04-2007, 18:23
vale per tutti i comandi:
$TUO_COMANDO >> file_dove_vuoi_salvare
non so pero' se da windows funziona...
Alla fine ho fatto così:
-o, --output-file=FILE log messages to FILE.
Niente non ci riesco:
http://img224.imageshack.us/img224/6735/wgetld0.gif
la causa dell'errore è che il wget che usi non è compilato col supporto per https.
Matrixbob
08-05-2007, 18:16
la causa dell'errore è che il wget che usi non è compilato col supporto per https.
Grazie.
Ora vorrei ottimizzare il lancio del WGET perchè devo usarlo in una procedura automatica e vorrei che NON si bloccasse mai altrimenti il resto della procedura si blocca anch'essa. :(
Ad esempio il timeout x il download si mette così:
wget --timeout=30 --output-file=./log/scaricare.log -O output_file -i input_file
Matrixbob
09-05-2007, 09:44
... o meglio mettere:
--tries=10
al posto del timeout?
Matrixbob
09-05-2007, 09:52
Ad esempio il timeout x il download si mette così:
wget --timeout=30 --output-file=./log/scaricare.log -O output_file -i input_file
Pensavo anche ad 1 bel:
wget --wait=2 --timeout=30
, così in teoria in 30 secondi faccio 15 tentativi di download del file.
Va bene x non sovraccaricare la rete?!:fagiano:
Matrixbob
18-06-2007, 11:10
Non riesco a scaricare questi link col wget:
http://video.google.it/videofile/TheArtOfKissing2HowT.mp4?docid=-6637247817120256191&itag=7
è 1 sua limitazione o posso risolvere in qualche modo?!
Matrixbob
19-06-2007, 14:21
Si pianta sul &itag mi pare:
http://img517.imageshack.us/img517/492/wgeterrorws8.gif
Come aggiro il problema?! :mbe:
Si pianta sul &itag mi pare:
Come aggiro il problema?! :mbe:
Prova a mettere il link fra doppi apici...
Matrixbob
19-06-2007, 14:42
Prova a mettere il link fra doppi apici...
Il file IMHO in remoto c'è:
http://img517.imageshack.us/img517/6972/wgeterrorvt7.gif
Ma il wget fa così:
--15:38:33-- http://video.google.it/videofile/Twogirlsteachoneanot.mp4?docid=-465292239831330717&itag=7
=> `canale1/Twogirlsteachoneanot.mp4@docid=-465292239831330717&itag=7'
Resolving video.google.it... 66.249.93.99, 66.249.93.104, 66.249.93.147
Connecting to video.google.it[66.249.93.99]:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://vp.video.google.com/videodownload?version=0&secureurl=tgAAAPOtXj3nyLN1s3WkURhdHKk7ujc1lXrllfK7ZkmLRG8vXWT2UKVRjfdgyldAl6sZs6_k1QKSwCg1YlTGIzltUHNiz7wQV1mSm9jo2p-XU9OZFjt1m0O4SueULElhgI9rycjR0jGmCrFGVOMt5oLVFj52u3Wre5z-RMnwR7mRvaWbcR_Jfpy2OBE990UzKEXPxQPH5J-V3fUZ78T4fFhKinaC9nHPkTIGfowtxL92-Otm-UBi9ToxK2Xf7yfF7-4O7w&sigh=uTeGIrxHd-YJPYyEf2XodlsYpyc&begin=0&len=109776&itag=7&docid=-465292239831330717 [following]
--15:38:33-- http://vp.video.google.com/videodownload?version=0&secureurl=tgAAAPOtXj3nyLN1s3WkURhdHKk7ujc1lXrllfK7ZkmLRG8vXWT2UKVRjfdgyldAl6sZs6_k1QKSwCg1YlTGIzltUHNiz7wQV1mSm9jo2p-XU9OZFjt1m0O4SueULElhgI9rycjR0jGmCrFGVOMt5oLVFj52u3Wre5z-RMnwR7mRvaWbcR_Jfpy2OBE990UzKEXPxQPH5J-V3fUZ78T4fFhKinaC9nHPkTIGfowtxL92-Otm-UBi9ToxK2Xf7yfF7-4O7w&sigh=uTeGIrxHd-YJPYyEf2XodlsYpyc&begin=0&len=109776&itag=7&docid=-465292239831330717
=> `canale1/videodownload@version=0&secureurl=tgAAAPOtXj3nyLN1s3WkURhdHKk7ujc1lXrllfK7ZkmLRG8vXWT2UKVRjfdgyldAl6sZs6_k1QKSwCg1YlTGIzltUHNiz7wQV1mSm9jo2p-XU9OZFjt1m0O4SueULElhgI9rycjR0jGmCrFGVOMt5oLVFj52u3Wre5z-RMnwR7mRvaWbcR_Jfpy2OBE990UzKEXPxQPH5J-V3fUZ78T4fFhKinaC9nHPkTIGfowtxL92-Otm-UBi9ToxK2Xf7yfF7-4O7w&sigh=uTeGIrxHd-YJPYyEf2XodlsYpyc&begin=0&len=109776&itag=7&docid=-465292239831330717'
Resolving vp.video.google.com... 66.249.93.176
Connecting to vp.video.google.com[66.249.93.176]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5,145,161 [video/mp4]
canale1/videodownload@version=0&secureurl=tgAAAPOtXj3nyLN1s3WkURhdHKk7ujc1lXrllfK7ZkmLRG8vXWT2UKVRjfdgyldAl6sZs6_k1QKSwCg1YlTGIzltUHNiz7wQV1mSm9jo2p-XU9OZFjt1m0O4SueULElhgI9rycjR0jGmCrFGVOMt5oLVFj52u3Wre5z-RMnwR7mRvaWbcR_Jfpy2OBE990UzKEXPxQPH5J-V3fUZ78T4fFhKinaC9nHPkTIGfowtxL92-Otm-UBi9ToxK2Xf7yfF7-4O7w&sigh=uTeGIrxHd-YJPYyEf2XodlsYpyc&begin=0&len=109776&itag=7&docid=-465292239831330717: No such file or directory
Cannot write to `canale1/videodownload@version=0&secureurl=tgAAAPOtXj3nyLN1s3WkURhdHKk7ujc1lXrllfK7ZkmLRG8vXWT2UKVRjfdgyldAl6sZs6_k1QKSwCg1YlTGIzltUHNiz7wQV1mSm9jo2p-XU9OZFjt1m0O4SueULElhgI9rycjR0jGmCrFGVOMt5oLVFj52u3Wre5z-RMnwR7mRvaWbcR_Jfpy2OBE990UzKEXPxQPH5J-V3fUZ78T4fFhKinaC9nHPkTIGfowtxL92-Otm-UBi9ToxK2Xf7yfF7-4O7w&sigh=uTeGIrxHd-YJPYyEf2XodlsYpyc&begin=0&len=109776&itag=7&docid=-465292239831330717' (No such file or directory).
Matrixbob
19-06-2007, 14:44
Adesso forse non riesce solo a scriverlo mi pare, trovarlo lo trova ne?!
Devo rinominarlo al volo?
Si può?
Più che altro sembra che non trovi la directory canale1
Matrixbob
19-06-2007, 14:56
Più che altro sembra che non trovi la directory canale1
Mah io mi riordo che la creava da lei, adesso provo a crearla io.
Matrixbob
19-06-2007, 15:01
Mah direi di no, adesso provo a rinominare al volo se riesco.
...
extern int canale_numero, count_item;
char comando[SIZEBUF];
memset(comando, 0, SIZEBUF);
sprintf(comando, "mkdir canale%d", canale_numero);
printf("Lanciato comando> %s\n", comando);
system(comando);
memset(comando, 0, SIZEBUF);
sprintf(comando, "wget --timeout=30 --output-file=./log/enclosure_item%d.log --directory-prefix=canale%d \"%s\"", count_item, canale_numero, input);
printf("Lanciato comando> %s\n", comando);
system(comando);
...
[EDIT]
Cannot write to `canale1/videodownload@version=0&secureurl=tgAAAPOtXj3nyLN1s3WkURhdHKk7ujc1lXrllfK7ZkmLRG8vXWT2
UKVRjfdgyldAl6sZs6_k1QKSwCg1YlTGIzltUHOJ-5PXHlNA2oXuNFdL3IlNjx2RLuOkUy1sratLSooum1LxIO579WdZVZCv6WyMPqV5MH
W85fmlIrp76h3S2Tjvq9b8EhjsuekPeGhoxR7GPY9wSIPq4jhmgJMG4DLvQUbllUjO99BbW1YXwADyO1K6w6uRVozBRM7QvX96_Mt5
pw&sigh=xtcuIe8jrBwaxkj5JKNoth5tZoY&begin=0&len=109776&itag=7&docid=-465292239831330717' (No such file or directory).
Matrixbob
19-06-2007, 15:50
Per la serie "... e vai di parametri":
...
extern char enclosure_nomefile[];
extern int canale_numero, count_item;
char comando[SIZEBUF];
// inizializzo la stringa vuota col carattere \0
memset(comando, 0, SIZEBUF);
sprintf(comando, "wget -T 30 -o ./log/enclosure_item%d.log -P canale%d \"%s\" -O %s", count_item, canale_numero, input, enclosure_nomefile);
printf("Lanciato comando> %s\n", comando);
system(comando);
...
Adesso lo scarica nella directory del mio programma invece di sbatterlo in canale. :(
Perché non fai le prove prima da linea di comando e poi quando hai trovato i parametri giusti li infili nel programma ?
Matrixbob
19-06-2007, 15:56
Il manuale WGET dice:
-P, --directory-prefix=PREFIX save files to PREFIX/...
Io ho provato anche:
sprintf(comando, "wget -T 30 -o ./log/enclosure_item%d.log --directory-prefix=canale%d \"%s\" -O %s", count_item, canale_numero, input, enclosure_nomefile);
Matrixbob
19-06-2007, 16:03
Perché non fai le prove prima da linea di comando e poi quando hai trovato i parametri giusti li infili nel programma ?
Perchè con il manuale sottomano ed il programma che esegue subito non penso sia molto diverso:
http://img130.imageshack.us/img130/7138/wgeterrornc5.gif
Ciò nonostante il parametro di prefisso non lo calcola nemmeno.
Sempre nella dir di programma lo sbatte il download.
Al post 21 mi sembrava che te lo considerasse, infatti diceva che non esisteva la directory...
Matrixbob
19-06-2007, 16:21
Al post 21 mi sembrava che te lo considerasse, infatti diceva che non esisteva la directory...
Mah, molto strano.
Allora, pare che il file WGET lo scarica a quel prefisso se TU non gli cambi nome. Ovverlo lasci le impostazioni di default NON specificando niente.
Se invece gli cambi il nome con -O pare trascurare il prefisso.
Ho risolto temporaneamente con 1 artificio in C:
extern char enclosure_nomefile[];
extern int canale_numero, count_item;
char comando[SIZEBUF];
// inizializzo la stringa vuota col carattere \0
memset(comando, 0, SIZEBUF);
sprintf(comando, "mkdir canale%d", canale_numero);
printf("Lanciato comando> %s\n", comando);
system(comando);
// inizializzo la stringa vuota col carattere \0
memset(comando, 0, SIZEBUF);
sprintf(comando, "wget \"%s\" -T 30 -o ./log/enclosure_item%d.log -O ./canale%d/%s", input, count_item, canale_numero, enclosure_nomefile);
printf("Lanciato comando> %s\n", comando);
system(comando);
Matrixbob
28-09-2007, 07:06
Sapete cosa restituisce il wget se fallisce il download del oggetto?
O meglio, cosa restituisce se RIESCE a scaricare l'oggetto?
Matrixbob
28-09-2007, 08:34
Sapete cosa restituisce il wget se fallisce il download del oggetto?
O meglio, cosa restituisce se RIESCE a scaricare l'oggetto?
Ho fatto un po' di prove con questa funzioncina C ed almeno che la system NON mi restituisca un intero, o che mi restituisce un numero che ha nulla a che fare col wget, allora si può notare che il wget restituisce 0 se tutto va a buon fine. Mi date conferma?
#include <stdio.h>
int main(int argc, char *argv[])
{
int report = -999;
// inizializzo la stringa vuota col carattere \0
char comando[500];
memset(comando, 0, 500);
printf("\nArgv: %s\n", argv[1]);
sprintf(comando, "wget %s", argv[1]);
printf("\nLanciato comando: %s\n", comando);
report = system(comando);
printf("\nReport wget: %d\n", report);
return 0;
}
Matrixbob
28-09-2007, 09:10
Mmmmm mi sa che il wget difficilmente fallisce, piuttosto mi scarica una pagina d'errore generata dai DNS, ma di fallire non se ne parla.
Ad esempio:
1] wget cacchio: fallisce con il valore 1
, ma già con:
2] wget www.cacchio ritorna una pagina generata dai DNS ed il valore 0. :(:muro:
http://guide.opendns.com/?url=www.cacchio
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.