Pagina 1 di 2
[RISOLTO] aiuto wget!
Inviato: sabato 12 luglio 2008, 16:09
da jack_the_ripper
raga come faccio a dire a wget di farmi una lista di tutti i link che ci sono in questa pagina?
http://legislature.camera.it/deputati/legislatureprecedenti/Leg06/deputatoiniziativalegislativa.asp?tipo=PDL&deputato=d10
mi basterebbe un output di testo in cui ci fosse un link per riga...
help me please :-[
Re: aiuto wget!
Inviato: sabato 12 luglio 2008, 18:41
da Massimo S.
Ma sei sicuro che WGET possa farlo?
Mi sono spulciato il suo man page, ma non mi sembra di aver trovato niente di simile
Re: aiuto wget!
Inviato: domenica 13 luglio 2008, 15:55
da Janvitus
PRovato a leggere il manuale?
man wget
Re: aiuto wget!
Inviato: domenica 13 luglio 2008, 18:29
da Massimo S.
Janvitus ha scritto:
PRovato a leggere il manuale?
man wget
Come dicevo, ci ho provato io, ma fra le centinaia di opzioni non mi è sembrato di trovare niente che facesse al caso :-\
Re: aiuto wget!
Inviato: domenica 13 luglio 2008, 18:44
da mous16
con wget puoi scaricare quella pagina. poi potresti rimediarti un programmino che presa la pagina html ti butti fuori tutti i link che contiente
Re: aiuto wget!
Inviato: domenica 13 luglio 2008, 21:01
da jack_the_ripper
ok bè con wget ho provato a scaricarmi la pagina ma siccome è asp (almeno credo sia per quello) mi ritrovo una pagina con solo "la cornice" e niente altro (link, testo, nada...)
cmq stavo quasi pensando che forse potrei provare con uno script in perl che mi buttasse fuori questi link (e magari andasse pure a leggermi le righe di testo che li precedono) si può fare una roba così?mi dareste qualche spunto?thanksssssss
(yes)
Re: aiuto wget!
Inviato: domenica 13 luglio 2008, 21:21
da tomm
ma ti vuoi esercitare a programmare o ti servono solo i link?
se ti servono solo i link basta che ti copi il codice html della pagine e ti prendi i link che ti servono, giacchè non sono tanti
Re: aiuto wget!
Inviato: domenica 13 luglio 2008, 22:40
da krasty
Se vuoi solo i link
Salva la pagina poi la apri con un editor di testo (gedit) e li prelevi.
Semplice no?
ciao

Re: aiuto wget!
Inviato: lunedì 14 luglio 2008, 13:11
da jack_the_ripper
krasty ha scritto:
Se vuoi solo i link
Salva la pagina poi la apri con un editor di testo (gedit) e li prelevi.
Semplice no?
ciao
tomm ha scritto:
ma ti vuoi esercitare a programmare o ti servono solo i link?
se ti servono solo i link basta che ti copi il codice html della pagine e ti prendi i link che ti servono, giacchè non sono tanti
eh no, il procedimento lo devo ripetere per qualcosa come 600-700 pagine identiche a quella...
per questo avevo pensato a uno script in perl che lo facesse al posto mio

gli aiuti sono sempre ben accetti...
grazie
Re: aiuto wget!
Inviato: lunedì 14 luglio 2008, 14:56
da mous16
forse lo script è la cosa migliore... anche in bash!
con wget scarichi le pagine, e poi ne filtri il contenuto, e prendi solo le stringhe tra i tag href
Re: aiuto wget!
Inviato: lunedì 14 luglio 2008, 15:13
da jack_the_ripper
già, però resta il fatto che la pagina è asp quindi se ad esempio con firefox faccio view page source da quell'indirizzo si vedono tutti i link con i tag href ma nella stessa pagina scaricata con wget non ci sono! >:(
il che mi fa pensare che dovrei trovare un altro modo senza usare wget o sbaglio?
per lo script da creare ribadisco che sono un profano in materia per cui se aveste qualche consiglio/spunto/guida da poter guardare sarebbe ottimo...
grazie a tutti aspetto fiducioso
Re: aiuto wget!
Inviato: lunedì 14 luglio 2008, 18:42
da Massimo S.
Dovresti anche cercare di capire se l'url che chiami fa un redirect ad un altro url e in caso vedere se c'è un modo di dire a wget di seguire i redirect
Re: aiuto wget!
Inviato: lunedì 14 luglio 2008, 19:20
da jack_the_ripper
no, non mi sembra ci sia alcun redirect...la pagina è quella...
EDIT: mettendo l'url tra virgolette nel comando wget riesco a scaricare la pagina con tutti i link, e li posso avere in formato testo con l'opzione -olog.
ora il passo successivo sarebbe creare uno script che faccia fare wget per tutte le pagine che mi servono (l'indirizzo è lo stesso, cambia un numero alla fine)
come potrei procedere?
grazie ragazzi
(b2b)
Re: aiuto wget!
Inviato: lunedì 14 luglio 2008, 21:17
da tomm
Allora, io dico la mia ma magari aspetta qualche suggerimento più competente...
Gli indirizzi sono in una lista? ognuno su una riga? allora puoi fare così:
Codice: Seleziona tutto
#!/bin/bash
for k in $(awk '{print $1}' < lista.indirizzi )
do
wget $k #k prenderà in sequenza il valore di tutti gli indirizzi della lista
done
Se i numeri alla fine degli indirizzi sono progressivi, così:
Codice: Seleziona tutto
#!/bin/bash
for k in $(seq 1 500)
do
wget http//:indirizzo.com/$k #k prenderà in sequenza i valori da 1 a 500
done
link molto utile:
http://tldp.org/LDP/abs/html/loops1.html
ciao!
Re: aiuto wget!
Inviato: martedì 15 luglio 2008, 13:47
da jack_the_ripper
allora, ho scritto il file wget.sh in questo modo:
Codice: Seleziona tutto
#!/bin/bash
for k in $(seq 10 30) #queste sono solo 3 pagine in quanto le pagine sono numerate 10,20,30 e così via...
do
wget -r -l1 -olog 'http://legislature.camera.it/deputati/legislatureprecedenti/Leg06/deputatoiniziativalegislativa.asp?tipo=PDL&deputato=d'$k
done
e mi sembra che la cosa funzioni, a parte il fatto che il log che ottengo fa riferimento solo all'ultima delle pagine scaricate, per cui immagino lo sovrascriva ogni volta...come posso fare in modo di avere un log per ogni pagina oppure tutt'al più un log unico per tutte le pagine?
grazie ancora
(good)
Re: aiuto wget!
Inviato: martedì 15 luglio 2008, 14:23
da tomm
ribadisco che sono abbastanza incompetente, ma:
Innanzitutto tieni conto che come hai fatto tu lo script si fa tutti i numeri da 10 a 30 (11,12,13,14,15,16,17.....). Per fargli fare solo 10 20 e 30 e per risolvere il problema della sovrascrittura potresti fare così:
Codice: Seleziona tutto
#!/bin/bash
for k in $(seq 1 3)
do
let "k *= 10"
mkdir $k
cd $k
wget -r -l1 -olog 'http://legislature.camera.it/deputati/legislatureprecedenti/Leg06/deputatoiniziativalegislativa.asp?tipo=PDL&deputato=d'$k
cd ..
done
però ho visto che va molto lento. Magari qualcuno ha un suggerimento migliore...(interesserebbe anche a me)
edit: va lento perchè deve scaricare da internet, me asino! >:(
Re: aiuto wget!
Inviato: martedì 15 luglio 2008, 16:08
da jack_the_ripper
benissimo!!ora grazie al vostro aiuto mi sto avvicinando alla meta

alla fine ho fatto questo script bash molto semplice e il risultato è che ora ho un unico log in cui vi sono (tra le altre cose) tutti i link che mi interessano
nell'ordine giusto.
ora, quello che vorrei fare sarebbe "filtrare" questo file di testo in modo da includere solo ed esclusivamente i link, a patto di mantenere invariato l'ordine in cui si presentano...
come potrei fare ???
Re: aiuto wget!
Inviato: martedì 15 luglio 2008, 16:22
da tomm
qui c'è quello che ti serve: sed!
http://glcfapp.umiacs.umd.edu:8080/esdi/index.jsp
In particolare a te dovrebbe interessare questo:
# print only lines which match regular expression (emulates "grep")
sed -n '/regexp/p' # method 1
sed '/regexp/!d' # method 2
sostitusci regexp con una qualsiasi stringa che compare in tutte le linee con i link e solo in quelle.
Dopodichè devi ripulire le stringhe che hai ottenuto da tutto ciò che non appartiene al link con una di queste funzioni (per cancellare devi ovviamente "sostituire con il vuoto")
# substitute (find and replace) "foo" with "bar" on each line
sed 's/foo/bar/' # replaces only 1st instance in a line
sed 's/foo/bar/4' # replaces only 4th instance in a line
sed 's/foo/bar/g' # replaces ALL instances in a line
sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' # replace the next-to-last case
sed 's/\(.*\)foo/\1bar/' # replace only the last case
esempio di uso di sed:
Codice: Seleziona tutto
sed -e 's/stazione//g' tuo_file > temp && mv temp tuo_file
elimina tutte le parole "stazione" da tuo_file
Re: aiuto wget!
Inviato: martedì 15 luglio 2008, 16:29
da ziocane
Spero di non dire la c***** del giorno:
ma io farei in un altra maniera, apro l'indirizzo con il browser, poi clicco tasto destro in un punto qualsiasi dello schermo e tramite il plugin dawnthemall scarico tutti i link che mi interessano...
Può essere?Se ho detto una stupidata scusatemi!
Re: aiuto wget!
Inviato: martedì 15 luglio 2008, 16:53
da mous16
deve farlo in automatico per TANTE pagine mi pare di aver capito... gli verrà una tendinite...