Topic: Prelevare email da pagine web.  (Letto 1008 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline PTN

  • python unicellularis
  • *
  • Post: 4
  • Punti reputazione: 0
    • Mostra profilo
Prelevare email da pagine web.
« il: Giugno 10, 2015, 17:31 »
Ciao a tutti ragazzi!
Avrei bisogno di un piccolo aiuto, sto mettendo su un database, perfettamente legale, che comprende diverse email prese da pagine web (ho la delibera).

Lo script che vorrei realizzare dovrebbe analizzare i link che gli indico e inserire tutte le mail in un file di testo.

Consigli? Grazie! :py:

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Prelevare email da pagine web.
« Risposta #1 il: Giugno 10, 2015, 19:12 »
che tipo di consigli vuoi scusa?

Offline PTN

  • python unicellularis
  • *
  • Post: 4
  • Punti reputazione: 0
    • Mostra profilo
Re: Prelevare email da pagine web.
« Risposta #2 il: Giugno 10, 2015, 21:35 »
Si hai ragione scusami, diciamo che sono un novizio e non ho idea di come dovrei impostare una cosa del genere, quindi qualche consiglio generico su come fargli analizzare le pagine, magari tramite browser esterno? Non so, brancolo nel buio! :embarrassed:

Offline Python

  • python sapiens sapiens
  • ******
  • Post: 2.045
  • Punti reputazione: 2
  • Radon - Cyclomatic Complexity of your Python code
    • Mostra profilo
    • Radon - Cyclomatic Complexity of your Python code
Re: Prelevare email da pagine web.
« Risposta #3 il: Giugno 11, 2015, 08:33 »
Possiamo anche sparare nomi a caso: urrlib, BeautifulSoup, requests, mechanize, RoboBrowser...

Se però non spieghi i dettagli non è che possiamo dare chissà quali consigli...

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Prelevare email da pagine web.
« Risposta #4 il: Giugno 11, 2015, 09:40 »
diciamo che sono un novizio

Di Python o della programmazione in genere? Comunque per domande così generiche Google è un'ottima fonte di luce.

Offline PTN

  • python unicellularis
  • *
  • Post: 4
  • Punti reputazione: 0
    • Mostra profilo
Re: Prelevare email da pagine web.
« Risposta #5 il: Giugno 17, 2015, 20:16 »
Scusate ragazzi avete perfettamente ragione, ma non essendo molto pratico mi sono espresso male.

Facciamo che io vi dico cosa voglio ottenere e voi mi dite la strada più perseguibile :D

In pratica mi sono state assegnate circa 3.000 pagine web da cui dovrei prelevare degli indirizzi email.
Dal momento che non ho voglia di fare questa cosa a mano, il mio obiettivo era creare uno script che automaticamente analizzare gli url che io gli darei, e nella pagina trovasse tutte le "@" inserendomi così automaticamente tutte le email in un foglio txt.

Spero di essere stato chiaro! :)

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.655
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: Prelevare email da pagine web.
« Risposta #6 il: Giugno 17, 2015, 20:38 »
curl/wget e grep bastano...

Offline PTN

  • python unicellularis
  • *
  • Post: 4
  • Punti reputazione: 0
    • Mostra profilo
Re: Prelevare email da pagine web.
« Risposta #7 il: Giugno 17, 2015, 23:25 »
Ciao e grazie per la risposta!

Sono abbastanza digiuno, potresti linkarmi qualche guida su come utilizzarli? Pensi che il programma sia troppo difficile per essere scritto da un n00b alle prime armi come me? Grazie.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Prelevare email da pagine web.
« Risposta #8 il: Giugno 19, 2015, 07:49 »
Pensi che il programma sia troppo difficile per essere scritto da un n00b alle prime armi come me?

Se pensavi di farcela con Python non ci sono particolari impedimenti con gli strumenti consigliati.

potresti linkarmi qualche guida su come utilizzarli?

Guide scelte a caso tra quelle trovate nello stesso modo in cui possono fare tutti, cercandole con Google:
http://www.yilmazhuseyin.com/blog/dev/curl-tutorial-examples-usage/
http://ninuzzo.freehostia.com/ant/it/linux/wgettut/
http://www.bisontech.net/opensource/tutorial-sulla-ricerca-dalla-shell-linux-find-grep-locate.html
http://a2.pluto.it/a2/a234.htm (capitolo 23.3)
http://www.topolinux.org/ezine_articles.php?art_id=36
http://www.webmastergr.com/grep-tutorial-per-unix/

Naturalmente per un uso avanzato di grep si apre il problema delle regex (regular expression o espressioni regolari),
magari riesci a farne a meno, altrimenti:
http://nicolaiarocci.com/introduzione-alle-regular-expression-prima-parte/
http://blog.chalda.it/guida-alla-sintassi-delle-espressioni-regolari-217.html
http://www.hwupgrade.it/forum/showthread.php?t=2208183
https://natonelbronx.wordpress.com/2007/12/02/le-espressioni-regolari-regex-o-regexp/
http://linuxaria.com/howto/guide-regular-expressions-syntax?lang=it

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Prelevare email da pagine web.
« Risposta #9 il: Giugno 19, 2015, 18:12 »
Comunque man e' disponibile da qualche decina di anni. Tipo, quando si menziona un comando, prima cosa e' provare man comando.
Si certo... gli utenti windows sono di base esclusi da questa cosa (sebbene se installano uno qualunque dei catafalchi che rendono il sistema vagamente usabile man e' probabilmente incluso).

Dopo di che... il consiglio di usare curl e grep per estrarre indirizzi email non e' dei migliori che ho sentito.
In primo luogo la grammatica per un indirizzo mail valido non e' semplice per un accidenti (e tantomeno regolare).

Se si ha un linguaggio con espressioni regolari veramente potenti (tipo Perl) ce la si cava, con dolore e sangue. Cosa intendo? Questa e' la "semplice" regexp:
http://ex-parrot.com/~pdw/Mail-RFC822-Address.html

E' possibile che se uno e' pazzo e non ha molto da fare la possa convertire in Python. Le regexp di Python sono meno potenti di quelle di Perl (principalmente perche' non ammettono esecuzione di codice, ma possibilmente per altri motivi). Pero' la su non mi pare che stia embeddando del codice.

E' anche possibile che si riesca a farlo con grep. Ma insomma...

Ah, e comunque ci sono alcuni indirizzi validi che manco quella regex e' in grado di processare.

Comunque, fortunatamente, si sono accorti che era delirio puro e per HTML5 (sigh) si sono decisi a dire cosa sia una valida email inclusa in una pagina html e la regexp e' molto piu' semplice:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
« Ultima modifica: Giugno 19, 2015, 18:16 da riko »