Pagina 1 di 1

Programma (o bot o spider) per salvare le mail di un sito?

Inviato: ven 16 gen 2009, 17:01
da sberla54
Ciao ragazzi!
Questa volta vi chiedo una mano per un problema di lavoro: ad intervalli piu' o meno regolari mi vedo costretto, per un'azienda per cui lavoricchio, a dover navigare i siti di vari enti pubblici locali (regioni, province, comuni) per cercare e copiarmi tutti gli indirizzi email dei sindaci e degli assessori. Questo allo scopo di creare un database d'indirizzi a cui comunicare, molto salutariamente (3 o 4 volte all'anno), l'organizzazione di seminari di formazione ed eventi simili.

Va da se' che ci spendo un sacco di ore, copiando uno ad uno gli indirizzi e salvandoli in fogli di calcolo o simili, con il nominativo e la qualifica nei 2 campi adiacenti all'indirizzo vero e proprio.

Ora, mi chiedevo, esiste un programma, un bot, uno spider, insomma qualcosa (qualsiasi cosa) che sia in grado di navigare un determinato sito ed immagazzinare tutti gli indirizzi email?
Voglio dire, se gli spammer hanno strumenti simili per fare le loro boiate, immagino ce ne siano di simili per scopi leciti.

Una volta immagazzinato tutti gli indirizzi email mi basterebbe eliminare quelli palesemente inutili (non so, il webmaster del sito per esempio) ed utilizzare gli altri....certo, non avrei la corrispondenza indirizzo - nominativo ma risparmierei montagne di tempo e potrei comunque inviare le comunicazioni.

Voi ne sapete qualcosa?
Spero di si :)

Grazie come sempre!!

Re: Programma (o bot o spider) per salvare le mail di un sito?

Inviato: ven 16 gen 2009, 17:09
da sardylan
Fatibile anche con scriptino bash!! Un esempio veloce con una regex che isoli tutte le combinazioni tipiche da indirizzo e-mail tipo:

Codice: Seleziona tutto

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$
Questa la uso in PHP per verificare gli indirizzi e-mail!! Però devi levare ^ che identifica inizio riga e $ che identifica la fine (se non sbaglio)

Codice: Seleziona tutto

REGEX="te la devi fare perché non ne ho idea!! :)"

for ITEM in $(cat urls.txt); do
    wget $ITEM -O temp.html
    cat temp.html | sed -e "$REGEX" >> emails.txt
done
P.S. Sono meno di zero in regex :p

Re: Programma (o bot o spider) per salvare le mail di un sito?

Inviato: gio 22 gen 2009, 10:17
da sberla54
Grazie!
Immaginavo che il modo migliore per farlo fosse ricorrere alla shell :)

Ma quindi, cosa posso usare per filtrare gli indirizzi e utilizzare quella regex?
Il tuo script usa wget? In pratica scarica le pagine del sito e poi salva le email in emails.txt?
Ma come va utilizzato? Intendo, come va lanciato? E' gia' completo?

Su IRC mauro mi ha consigliato di provare con lynx:

Codice: Seleziona tutto

lynx -dump http://urlchevuoitu | grep -o "[^ ]*@[^ ]*"
magari facendo finire l'output in un file di testo.

Scusatemi ma non sono ancora pratico come vorrei con la bash :)

Re: Programma (o bot o spider) per salvare le mail di un sito?

Inviato: ven 23 gen 2009, 11:28
da sardylan
Beh... Più o meno è quello... L'idea è di usare un browser testuale!!! Far salvare la pagina con un nome particolare, e non il solito index.html, in modo da darli sempre lo stesso nome... Poi dare in pasto a sed o a qualche altra cosa l'intero file di testo in modo da trovare tutti gli indirizzi e'mail... Ed ogni volta che ne trova uno lo deve scrivere in un secondo file di testo... Tutto qui!!!
La regex che ti ho dato io serve per analizzare l'intero input e vedere se è effetivamente un indirizzo email... Non penso che funzioni per analizzare un file che contiene più e-mail... Però ti può servire per isolare i blocchi che identificano un 'indirizzo, che grosso modo sono questi:
[qualcosa] { (. punto facoltativo) (qualcosa facoltativo) blocco ripetuto più volte} [ @ obbligatoria ] [qualcosa] { (. punto facoltativo) (qualcosa facoltativo) blocco ripetuto più volte} [ .dominio di 2 o 3 lettere ]
Poi con bash il gioco è semplice ;) Le | reindirizzano lo stdout di un comando nello stdin del successivo, mentre i > reindirizzano lo stdout del comando in un file!!
Per il resto man bash ti consigla moolto più di me...

Quello con lynx è un esempio!! Aggiustando la regex forse potresti beccare anche gli indirizzi più complicati...
Poi se chiud tutto dentro un ciclo che esegue il tutto tot volte, ogni volta con un indirizzo diverso il gioco è fatto!!! Ti fai un file dove metti gli URL, glieli fai leggere e via!!

Edit:: ora mi informo meglio e poi ti faccio sapere...