Entra

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>.

MrAsd
05-01-2007, 20:30
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.

kingv
28-04-2007, 08:13
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:

cionci
19-06-2007, 14:35
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ò?

cionci
19-06-2007, 14:53
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. :(

cionci
19-06-2007, 15:54
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.

cionci
19-06-2007, 16:15
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