Newsgroup: it.arti.musica.classica
Titolo: tremendamente OT: pagine web e e-mail

Ho bisogno di un software che estragga tutti gli indirizzi e-mail
presenti in una pagina web: so che ne esiste qualcuno.
Qualcuno tra di voi ne conosce il nome?
Grazie

 wrote in message
news:5f6598a4.03021...@posting.google.com...

A scopo di spam, per caso? Di solito questo è il fine di coloro che si
dedicano all' "email harvesting"...

 Grazie
Prego.
-- 
La vita è una cosa che prende, porta e spedisce.
Ciao,Alessandro.
[se vuoi spedirmi un'email, togli il poeta dall'indirizzo]

 
non c'è bisogno che tiri in gioco Aristotele e il Perl, ne che ti
pavoneggi per farmi credere uno spammer. (a parte che basterebbe il
java, che mi è più familiare).
Se sei uno di quelli che vedono "spammatori" ovunque, sono anche fatti
tuoi... capisci che non è molto ragionevole chiedere una informazione
a fine di spam su un newsgroup come questo? Esistono sicuramente dei
lamer in grado di darmi tali informazioni, non pensi?
Le quantità spropositate sono su una sola pagina, che ti indico pure
nel link sotto; fatto è che cliccare su tutti i link mi richiede un
po' di tempo, e accoglierei una soluzione rapida.
Ti rassicuro sul fatto che non sono uno spammer e che non ti arriverà
posta non richiesta da parte mia.... poi se non vuoi crederci fa pure.
Cmq ho chiesto la stessa info su un altro newsgroup e ho ricevuto + o
- gli stessi commenti... è comprensibile, ma non ce n'è ragione
http://www.marchentilocali.it/rubricaenti/selezione.asp

 po' di tempo, e accoglierei una soluzione rapida.
Allora scusami. Non so che sistema operativo utilizzi: su Linux
risolverei la cosa, visto che si tratta di un'unica pagina, direttamente
con sed o, perchè no, vi o emacs (insomma, qualsiasi sistema di pattern
matching andrebbe bene, visto che gli indirizzi email sono delle
stringhe costituite come "mailto:..."), con una ridirezione su file del
risultato.


 risultato.
non ho mai messo le mani su linux; uso win me: è una grave lacuna;
risolverò in futuro

 è mai capitato sotto le mani.... forse può essere utile
Guarda, per molti compiti miminali ho imparato ad evitare di cercare
software specifico (è chiaro che più il compito è minimo, più il
programma cercato lo si cerca focalizzato a poche operazioni veloci ed
immediate, qualità che il software-tutto-fare raramente ha), mi scrivo
due righe in Perl o addirittura in Bash (il linguaggio di programmazione
di una shell a caratteri molto usata sotto Linux), appoggiandomi alla
miriade di programmi e programmini che possono servirvi e che
qualcun'altro ha avuto la buona idea di sviluppare.
I programmi "mi serve una cosa, mi serve fatta bene e ORA" sono l'ideale
per il Perl, che ha il pregio di poter essere stringatissimo (è una
scelta dello sviluppatore: un programmino di 50 righe può non aver senso
che sia particolarmente auto-esplicativo, diventando esso stesso un
futuro sotto-programma che acquisti chiarezza dal programma più grande in
cui viene poi inserito) e di interfacciarsi con una miriade di librerie
per tutti i gusti (ci sono librerie per gestire le email, per
interfacciarsi ai cellulari, per gestire svariate interfaccie grafiche,
per trattare file XML, qualsiasi cosa si abbia in mente qualcuno sulla
terra ne ha scritto un'interfaccia in Perl). Oltretutto è
multi-piattaforma ed è software libero.
Ah, è adattissimo (è proprio scritto apposta) per manipolare stringhe
nel modo più rapido e duttile possibile; un programmino che prenda un
sorgente HTML, ne estragge gli indirizzi email e li butti in un file è
davvero cosa di una decina di righe di codice.
Ti mando le Url per email, appena ritrovo da dove cavolo ho scaricato i
tutorials. :) Altrimenti te li spedisco direttamente, sono una manciata
di files html.
-- 


 davvero cosa di una decina di righe di codice.
Una decina di righe? Come sono pessimista certe volte.
Ecco il codice Perl per estrarre email dalle pagine HTML:
while ($r = <STDIN>) {$r =~ /"mailto:(.+)"/ && print "$1\n";}
Tutto qui.
Lo si esegue con
$ 
estrai.pl
 <pagina.html >email.txt
E in email.txt si hanno tutte le email presenti sulla pagina.


 while ($r = <STDIN>) {$r =~ /"mailto:(.+)"/ && print "$1\n";}
Penso che l'esempio qui sopra possa rendere abbastanza bene il legame
che esiste tra stringatezza e visibilità (o bellezza, chiamatela come
volete).
Una traduzione per i più curiosi:
Mentre (while) la variabile r ($r) coincide con
il flusso dei dati in entrata (<STDIN>, bello no?), controlla se $r
contenga (=~) il valore di pattern matching (/ /, che in esteso può
essere scritto m/ /) ed in caso positivo (&&) stampa la prima
sottostringa ($1) del pattern su schermo.
La stringa di matching "mailto:(.+)", in realtà, fa due controlli
(questa è una delle proprietà principali del Perl, permettere una sorta
di sintesi intuitiva delle operazioni - cosa che gli conferisce quel
carattere "mistico", da runa elfica, così evidente), prima taglia il
flusso selezionando ogni stringa del tipo "mailto:...", poi di questa
stringa viene tagliata la sottostringa compresa tra il mailto: e la
seconda " (il taglio è visivamente reso dalle due parentesi); perciò la
sottostringa (.+) indica testualmente 'qualsiasi sequenza di caratteri
compresa tra mailto: e "'. All'esterno del pattern matching le varie
sottostringe () () () vengono identificate come $1, $2, $3. In un altro
linguaggio, tutto sarebbe stato reso in termini sequenziali, allungando il
codice.
Un'altra caratteristica del Perl è l'amore per gli isomorfismi: *tutto*
può essere trasformato in una catena logica, dato che ogni istruzione
può essere identificato con il proprio esito (positivo o negativo). In
questo caso l'uso dell'AND logico (&&) sta per il canonico "if then"
(che in Perl, ovviamente, esiste): il motivo è semplice, un AND non è
altro che la verifica dell'esito positivo del primo termine (1 e 1
soddisfa l'AND cioè lo fa attraversare il secondo termine, mentre uno
0/falso iniziale fa immeditamente bloccare l'AND dato che è inutile
"eseguire" il secondo termine, visto che la catena non darebbe in ogni
caso esito positivo), così come un OR (||) non è altro che la verifica
dell'esito negativo del primo termine (se il primo termine è 1/vero,
infatti, non c'è alcun bisogno di controllare l'esito del secondo - e
controllare vuol dire eseguire).


 volete).
In effetti è proprio questo senso della 'bellezza' che mi piace del
linguaggio di Larry Wall: la coincisione, la concentazione quasi
weberniana, oserei dire, del codice in un solo statement. È forse in
questo, più che in altri aspetti, che si vede l'ispirazione dalla command
line UNIX.
E poi, cosa dire del geniale:
   print "DEBUG: value is $var\n" if $debug;
dove la clausola "if" diventa un semplice suffisso, e quindi chi legge non
si preoccupa della condizione logica di controllo, ma si concentra
sull'azione vera e propria: non potevano pensarci anche in altri linguaggi?
Non parliamo poi della dovizia di moduli aggiuntivi disponibili online,
che lo rendono uno dei linguaggi più pratici e immediati che abbia mai
visto (ci ho anche 'pilotato' i componenti COM senza grandi problemi).
Io lo uso spesso, anche se mi pare che in Italia non molti lo conoscano:
peccato, dato che è completamente free e sviluppato da gente che se ne
intende, e non da developers pagati quattro soldi da qualche grande
azienda con la fregola dell'ultima release. 
Qui lo uso di nascosto, perché non è considerato molto 'standard'... se si
accorgono che il backup di certi database è fatto in Perl mi fanno a
pezzi...
Ciao,
Renato.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 azienda con la fregola dell'ultima release. 
Oddio, ce l'ho sulla punta della lingua, qual'è quella parola che
comincia per 'M' e finisce per 'arketing'? :)
Non è che il marketing spinga direttamente e banalmente all'acquisto di
determinati prodotti [1], no, ti fa soltanto guardare in un'unica
direzione (che, causalmente, è quella voluta), oscurando tutto il resto
e tramutando i difetti di una merce in necessità dell'ambiente
circostante alla merce (un esempio canonica dal mondo dell'informatica:
la ragione per cui un sistema operativa sia effettivamente poco
affidabile è che lo si userebbe in ambiente casalingo; sembra una
fesseria, ma la suddivisione spinta tra SO desktop e server, basata
sulla sicurezza e sulla solidità dell'uno ed il disinteresse nei loro
confronti nell'altro, è di questo tipo ed è chiaramente una
sciocchezza).
Dietro alla creazione dell'"utente medio" (che è un misto
abominevole tra una segretaria, un grafico professionista ed una scimmia
ammaestrata -- perchè vorrei sapere per quale ragioni sia cosa automatica e
naturale che una persona che *usa* sofisticate e tutt'altro che medie suite
per l'ufficio *e* complessi e tutt'altro che medi programmi di disegno
*allo stesso tempo* trovi necessari sistemi di interazione tra uomo e
macchina molto più primitivi - cioè lontani dalla ricchezza linguistica a
cui una persona è abituata - dei programmi che utilizza), dietro alla spinta
verso la centralità delle GUI (che è "vero" che rendono il rapporto con il
computer più semplice, ma non è la verità, tutta la verità, nient'altro che
la verità: molti compiti sono rallentati enormemente dall'uso delle GUI,
altri ne sono semplicemente impacciati; basta riflettere sul fatto che, per
molte persone, l'uso del computer è in realtà l'uso di un insieme di
strumenti per manipolare e creare testi: email, news, articoli, sono tutti
elementi testuali che non è poi cosa così intuitiva trasformare in elementi
di una GUI - la fatica concettuale per considerare un'email un "blocco
logico" di un'interfaccia grafica, per cui si preme poi un pulsantino
particolare per rispondere al mittente non mi pare poi minore di
considerare un'email un insieme di caratteri sullo schermo e quindi
rispondere con la pressione di un carattere sulla tastiera), vedo tante
ragioni "ragionevoli", ma altrettante di seduzione del mercato (che, per
carità, non è mica un mostro a sette teste, solo che non vorrei che dei
mostri lo diventassero gli utenti).
[1] E`un luogo comune del pensiero di derivazione marxista il
considerare eccessivamente il ruolo attivo del marketing nella vita di
tutti i giorni; del resto, è un luogo comune del pensiero liberale
credere che il marketing sia sempre esistito o che, in fin dei conti,
abbia scarso peso a fronte delle strepitose capacità decisionali
dell'individuo (è un luogo comune, comunque, che deriva da un luogo
comune di carattere più generale: e cioè che le caratterizzazioni
dell'uomo storico cedono il passo alle caratterizzazioni universali
dell'uomo - l'effetto nella prassi è quella sorta di elogio della
"serenità", perchè tanto la lotta contro gli universali ci
ritroverebbe sempre perdenti; ammetto che, in questo, un fondo di
saggezza c'è ed ha il suo fascino).
