python 读取邮件内容_python获取邮件内容(邮件内容为html)
用python获取邮件内容比较简单,直接用现成的imap和pop3包即可,但是有时候邮件的内容不是plainText而是html甚至是一个url链接,原本的操作流程是点击url获取内容(比如csv等等)。
我这边的需求是从html里的众多url中找到包含所需文件的url并将文件的内容保存到本地。
上代码:
# -*- encoding: utf-8 -*-
import getpass, email, sys
import base64
import datetime
import re
from imapclient import IMAPClient
import requests
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
today = time.strftime("%Y-%m-%d")
today_s = str(time.strftime("%d-%b-%Y"))
#配置imap客户端
server = IMAPClient(host='***.com', ssl=True)
def func():
try:
server.login('***.com', '***')
except server.Error:
print('Could not log in')
sys.exit(1)
#选取收件箱 只读模式
select_info = server.select_folder('INBOX', readonly=True)
#在收件箱里按照时间和发件人来搜索过滤邮件
messages = server.search(['TEXT', '***.com', 'SINCE', today_s])
#获取邮件内容、结果为两部分邮件id和邮件内容
msgdict = server.fetch(messages, ['BODY.PEEK[]'])
for u_id, message in msgdict.items():
url = get_url(message)
get_text(url)
def get_url(message):
e = email.message_from_string(message['BODY[]']) # 生成Message类型
html = ''
#解析转码获取html
for part in e.walk():
html = part.get_payload(decode=True)
#正则获取html的url链接
pat = re.compile(r"y:
y = len(x)
url = x
return url
def get_yes():
today = datetime.date.today()
oneday = datetime.timedelta(days=1)
yesterday = today-oneday
return yesterday
def get_text(url):
#获取url的内容
f = requests.get(url)
#将url指向的文件内容写到本地
with open("./temp", "wb") as code:
code.write(f.content)
with open("./temp", "r") as code:
lines = code.readlines()
n = 3
while n < len(lines):
res = ''
ls = lines[n].strip('\n').split('\t')
if len(ls) > 1:
res += ls[0] + '\t'
res += ls[3].replace(",", "") + '\t'
yesterday = get_yes()
res += str(yesterday)
with open('data/' + today, "a") as f_res:
f_res.write(res.replace('\0', ""))
f_res.write('\n')
n += 1
if __name__ == '__main__':
func()
代码很简单,不过需要提前在邮箱打开imap客户端协议。
python 读取邮件内容_python获取邮件内容(邮件内容为html)相关推荐
- python读取数据库导出文件_Python 获取 datax 执行结果保存到数据库的方法
执行 datax 作业,创建执行文件,在 crontab 中每天1点(下面有关系)执行: 其中 job_start 及 job_finish 这两行记录是自己添加的,为了方便识别出哪张表. #!/bi ...
- python读取图片分辨率_python获取网页中所有图片并筛选指定分辨率的方法
压测时,图片太少,想着下载网页中的图片,然后过滤指定分辨率,但网页中指定分辨率的图片太少了(见下) 后使用格式工厂转换图片 import urllib.request # 导入urllib模块 imp ...
- python读取git日志_Python获取gitlab提交历史!
工作中的场景,记录下来分享给大家. 需求 公司私有部署了gitlab保存公司代码,希望在发布系统中可以展示项目在gitlab的提交历史,供发布人员选择提交commit记录并构建对应的docker镜像. ...
- python读取mac地址_python - 获取MAC地址
python - 获取MAC地址 我需要一种在运行时确定计算机MAC地址的跨平台方法. 对于Windows,可以使用'wmi'模块,我可以找到Linux下唯一的方法是运行ifconfig并在其输出中运 ...
- python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...
实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...
- python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法
实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...
- 使用Python读取网易邮箱大师客户端的所有邮件
文章目录 1. 前言 2. 效果 3. 探究过程 3.1. 找到本地存储的数据库 3.2. 使用Python读取数据库 3.2.1. 代码 4. 探究结果 4.1. 函数 4.1.1. 找到特定邮~箱 ...
- 【Python】python读取doc、docx文件里的表格内容并存入excel中
效果 先展示下基本的效果,首先我们只有一个doc文件,与python的代码: 我这里用的是doc的word文档,文档内表格如下: 通过python读取后打印: 我这里没有专门按照表格内往excel中写 ...
- python读取文件多行内容-Python读取文件、大文件和指定行内容的几种方法
在使用python处理文本的时候,经常会需要读取文件的内容.如果文件比较小,那么直接使用open文件对象打开文件,再通过read()方法最为方便,这种方法就是把文件内容读出来后放到内存变量. read ...
- python xlwt追加内容_python 往excel中追加内容
from xlrd import open_workbook from xlutils.copy import copy #在创建好的excel种追加新的数据 if __name__ == '__ma ...
最新文章
- R语言负二项分布函数Negative Binomial Distribution(dnbinom, pnbinom, qnbinom rnbinom )实战
- mysql约束_从零开始学 MySQL - SQL 约束分类
- 区块链不适用的若干场景
- 《c++语言导学》——3.5 建议
- Confluence 6 从外部目录中同步数据支持的目录类型
- 分享一个自己做的SpringMVC的PPT,由于比较忙只写了一些重要的部分
- 走进我的交易室04_成功交易的 3 个 M
- JAVA EE(简述)
- 1-1 二进制/源码/zip安装和升级
- java web 导出excel_javaweb导出excel表格
- CentOS6.5 安装Tomcat6
- 玲听 | 蚂蚁金服布局区块链核心3问
- 正则去掉首尾空格以及首尾的
- windows操作系统知识最全
- Autodesk Alias AutoStudio 2022.0.1 x64
- 火车站信号自动语音播报系统的设计
- 广州电信高级前端开发工程师笔试题及答案(国企面试题大全)
- 删除oracle数据锁,【总结】oracle恢复误删除数据,解除锁定的等sql语句
- 搭建git私有化仓库
- WCF RIA Services 概述