Come scrivere un minatore e-mail per Python

March 22

Come scrivere un minatore e-mail per Python


e-mail Mining è un mezzo di estrazione di informazioni, come il numero di parole, frasi, o la ricchezza del vocabolario del corrispondente, dal testo in email. Scrivere un minatore e-mail con Python richiede molte "parti in movimento" in forma di estensioni Python, chiamati pacchetti, che i messaggi di posta elettronica scaricare al largo di server. I messaggi vengono convertiti in stringhe in modo che altri pacchetti Python li può analizzare e visualizzare quello che trovano. Questo è un compito molto complesso che richiede più di una conoscenza casuale di passaggio di programmazione Python. Quindi, procedere con cautela e pazienza.

istruzione

1 Aprire una sessione di terminale e digitare python -v alla richiesta di verificare di avere Python 2.6 o superiore, ma non 3.0 o superiore. Versioni 2.6 o 2.7 sono l'ideale perché sono compatibili con NLTK e PyYAML. Visita la pagina Python indice di pacchetti; trovare e scaricare i pacchetti PyYAML e NLTK. Unzip / li untar. Modificare la directory alla directory PyYAML. In linea di prompt dei comandi digitare in: sudo python setup.py install. Dovrebbe sembrare come questo:

My-computer: PyYAML-3.2.0 Me $ sudo python setup.py install

Verrà richiesta una password. Tipo e premere il tasto di ritorno. Seguire questa procedura per ogni pacchetto di Python si installa.

2 Scarica messaggi di posta elettronica per l'analisi con le seguenti righe di codice:

! / Usr / local / bin / python

importazione poplib, getpass, SYS, mailconfig

mailserver = mailconfig.popservername

MailUser = mailconfig.popusername

mailpasswd = getpass.getpass ( 'La password per% s?'% mailserver)

server = poplib.POP3 (server di posta)

server.user (MailUser)

server.pass_ (mailpasswd)

stampa (server.getwelcome ())

msgCount, msgBytes = server.stat ()

stampa ( 'Non ci sono', msgCount, 'messaggi di posta elettronica in', msgBytes, 'byte')

stampa (server.list ())

print ( '-' * 80)

Ingresso ( '[Premere il tasto Enter]')

per i in range (msgCount):

hdr, messaggio, ottetti = server.retr (i + 1)

per la linea in un messaggio: stampa (line.decode ())

lettura ( '-' * 80)

se i <msgCount - 1:

Questo script si connette al server di posta elettronica POP3, si chiederà il nome utente e la password, contare il numero di messaggi sul server e letti nella memoria.

3 Miniera di messaggi di posta elettronica di conversione di ogni messaggio in una stringa, un tipo di dati nativo in Python, che può essere cercato con i metodi di Python stringa, motore delle espressioni regolari, e Natural Language Toolkit:

m = msgCount [1]

s = str (m)

da email.Parser importazione Parser

importazione NLTK

importazione re

4 MINE il primo messaggio per qualsiasi informazioni di interesse. Scopri quante parole sono in quel messaggio digitando il seguente comando:

len (s)

Esso restituirà un valore intero per il numero di parole. Per trovare ogni frase con il mutuo parola, digitare il seguente comando NLTK:

s.concordance ( 'mutuo')

Ciò restituirà ogni frase con la parola mutuo in esso; molto utile per gli investigatori che indagano truffa sui mutui.