Извлечение текста из электронной почты в Python - PullRequest
1 голос
/ 07 декабря 2009

Мои пользователи будут отправлять мне сообщения по электронной почте ala Posterous

Я использую Google Apps Engine (GAE) для получения и анализа электронной почты. GAE возвращает текстовую часть сообщения.

Мне нужно извлечь сообщение из текстовой части сообщения.

Простой текст может быть "загрязнен" рекламными заголовками, нижними колонтитулами, подписями и т. Д.

Кроме того, я хотел бы пропустить фразу «пожалуйста, напишите это:» или аналогичные, которые некоторые люди откровенно включают.

Как бы вы этого достигли?

Существуют ли какие-либо инструменты (проще, чем регулярные выражения), которые я могу использовать?

UPDATE

Примеры:

(во всех этих примерах пост "Lorem ipsum sit amet ..."

=====

Lorem Ipsum Dolor Sit Amet, Concetetur Adipisicing Elit, Sed Do EiusMod Tempor Incididunt Ut Labore et Dolore Magna Aliqua. Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea кассовый следствие. Duis aute irure dolor в репереендерите в завитке Velit esse cillum dolore eu fugiat nulla pariatur.

Виктор П
victor.p@example.com
посетите мой блог по адресу: www.example.com/victor

=====

Здравствуйте, мне нравится ваша страница. Пожалуйста, включите это: Lorem Ipsum Dolor Sit Amet, Concetetur Adipisicing Elit, Sed do EiusMod Tempor Incididunt U Labore et Dolore Magna Aliqua. Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea кассовый следствие. Duis aute irure dolor в репереендерите в завитке Velit esse cillum dolore eu fugiat nulla pariatur.

=====

Lorem ipsum dolor sit amet, специалист по адептизированию elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea Коммодо Последоват.

Duis aute irure dolor в предыдендерите в завитке Velit esse cillum dolore eu fugiat nulla pariatur.

=====

Если вы найдете больше примеров того, чем может быть электронное письмо, пожалуйста, не стесняйтесь включать их в сообщение.

1 Ответ

2 голосов
/ 08 декабря 2009

Я бы пошел со списком скомпилированных регулярных выражений. Что-то вроде:

import re

regexes = (
    re.compile("visit my blog at: .*$", re.IGNORECASE),
    re.compile("please post this:", re.IGNORECASE),
    re.compile("please can you include this:", re.IGNORECASE)
    # etc
)

for filePath in files:
    with open(filePath) as file:
        for line in file:
            for regex in regexes:
                print(re.sub(regex, ""))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...