python解析mht文件中的html和css

135 阅读1分钟

先看看百度百科对mht的描述

MHTML文件又称为聚合HTML文档、Web档案或单一文件网页。单个文件网页可将网站的所有元素(包括文本和图形)都保存到单个文件中。这种封装使您可将整个网站发布为单个内嵌MIME (MIME:通过 Internet 连接传递多媒体资源的一列标准。MIME类型通知程序对象所包含的内容(如图形、声音或视频)的聚合HTML文档(MHTML)文件,或将整个网站作为一个电子邮件或附件发送。Internet Explorer 4.0及更高版本支持此格式。

baike.baidu.com/item/mht/29… 百度百科

那mht如何解析?

本质上就是解析multipart的过程,和eml邮件格式类似

直接上代码

import email
import mimetypes
import os

def parse(filename, content_type, index):
    mht = open(filename, 'r')
    msg = email.message_from_file(mht)
    mht.close()
    i = 0
    for part in msg.walk():
        if part.get_content_type() != content_type:
            continue
        if i != index:
            i+=1
            continue
        return part.get_payload(decode=True)
        
        
 if '__main__' == __name__:
    parse('/path/to/filename')

本文使用 文章同步助手 同步