当前位置:   article > 正文

python--提取eml邮件内容_获取eml文件中附件

获取eml文件中附件

所需包:

  1. """
  2. pip install eml_parser
  3. pip install langdetect
  4. """
  5. import re
  6. import csv
  7. import os
  8. from bs4 import BeautifulSoup
  9. import eml_parser
  10. from langdetect import detect
  11. from langdetect import DetectorFactory
  12. from translate import Translator   # 英汉翻译

部分代码示例:
 

  1. DetectorFactory.seed = 0
  2. keywords = ['@gjsyjfsg.com', '@hfisu.eu']
  3. save_file = ''
  4. file_dir =  ''
  5. # 英语翻译中文
  6. translator = Translator(to_lang="chinese")
  7. translation = translator.translate("Do you believe")
  8. print(translation)
  9. # 中文翻译成英文
  10. translator = Translator(from_lang="chinese",to_lang="english")
  11. translation = translator.translate("开心快乐每一天!")
  12. print (translation)
  13. with open(save_file,'w',encoding='utf-8') as save_f:
  14.     writer = csv.writer(save_f)
  15.     writer.writerow(['name', 'sender', 'reciver', 'cc', 'title', 'body', 'keyword', 'lang'])
  16.     # 当前目录路径  当前路径下所有子目录  当前路径下所有非目录子文件list 格式
  17.     for root, dirs, files in os.walk(file_dir):
  18.         for eml_data_path in files:
  19.             filepath = os.path.join(file_dir, eml_data_path)
  20.             # 读取每个eml文件
  21.             name = eml_data_path.split('.')[0]
  22.             with open(filepath,'rb') as f:
  23.                 a=f.read()
  24.             eml = eml_parser.eml_parser.decode_email_b(a,True,True)
  25.             # 提取数据
  26.             for i in eml["body"]:
  27.                 try:
  28.                     if i['content_type'] == 'text/plain':
  29.                         body = i['content']
  30.                         break
  31.                     elif i['content_type'] == 'text/html':
  32.                         soup = BeautifulSoup(i['content'], 'lxml')
  33.                         p_data =soup.find_all('p')
  34.                         ree = []
  35.                         for i in p_data:
  36.                             res = i.get_text()
  37.                             ree.append(res)
  38.                         body = ''.join(ree)
  39.                 except Exception as e:
  40.                     body = i["content"].replace('\r\n','')   # 正文
  41.             title = eml["header"]["subject"]    # 标题
  42.             reciver = ','.join(eml["header"]["to"])   # 收
  43.             sender = eml["header"]["from"]   # 发
  44.             # 加抄送
  45.             try:
  46.                 cc = eml["header"]["cc"]
  47.             except Exception as e:
  48.                 cc=''
  49.             # 拼接查看已知关键词命中情况
  50.             key = ['key1','key2','key3','key4']
  51.             aa = f'{reciver},{sender},{cc}'
  52.             for i in keywords:
  53.                 if re.match(aa, i):
  54.                     key.append(i)
  55.             # 识别语言类型
  56.             lang = detect(body)    # detect函数是中英文类型识别函数
  57.             # 写入csv
  58.             line = [name, sender, reciver, cc, title, body, key, lang]
  59.             writer.writerow(line)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/1003814
推荐阅读
相关标签
  

闽ICP备14008679号