Python中从邮件提取文本
我的用户会通过电子邮件给我发送帖子,就像Posterous那样。
我正在使用Google应用引擎(GAE)来接收和解析这些邮件。GAE会返回邮件的文本部分。
我需要从邮件的纯文本部分提取出帖子内容。
不过,这些纯文本可能会夹杂一些广告的头部、尾部、签名等等。
我还想去掉一些人随意加上的“请发布这个:”之类的内容。
你会怎么做呢?
有没有比正则表达式更简单的工具可以使用?
更新
示例:
(在所有这些示例中,帖子内容都是“Lorem ipsum sit amet...”)
=====
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Victor P
victor.p@example.com
访问我的博客:www.example.com/victor
=====
你好,我喜欢你的页面。请你能加上这个吗:Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。
=====
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。
=====
如果你发现更多邮件的示例,欢迎随时把它们加到帖子里。
1 个回答
我建议使用一个编译好的正则表达式列表。可以这样做:
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, ""))