第8.1.2解析mht格式文件

有人建议改造一下mhtifier.py就可以解析mht格式文件,它的示例没有告诉我,怎么验证。而且我改造也失败了,可能是我的水平有限。
Python :解析 word 文档(前程无忧简历),这篇文章的作者,告诉我们,51job的简历格式是mht格式的,虽然下载文件后缀是doc的。
python3通过文件头判断文件类型,从这篇文章的代码,可以获取文件的真实格式,mht格式与eml格式差不多,网上说可以通过解析邮件的方式,去解析mht,于是我按照这个思路去探索。
java将mht转换为html格式文件,可以参考poi读取word简历(伪word格式的doc文件 )提取文本内容报错,他的代码我没有验证过,
java写法可以参考java工具类mht转html格式文件 及简单的HTML解析,这个我验证过,是可以解析的
php也有对应的办法,例如php解析mht文件转换成html那么python怎么做呢?
Chilkat号称可以处理,但是他是付费软件,chilkat破解,而且说明文档写的也很挫,谷歌上的资料也不多。思来想去,真想放弃了使用python的办法。
不过想了想,既然mht格式就是eml,那么使用解析eml的方式去解析eml,不过就可以了。

import email
import mimetypes
import os

def parse(file_name):
    mht = open(file_name,'r')
    msg = email.message_from_file(mht)
    mht.close()
    file_path = r'F:\test\files'
    for part in msg.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        filename = part.get_filename()
        if not filename:
            ext = mimetypes.guess_extension(part.get_content_type())
        try:
            fp = open(os.path.join(file_path,'test'+ext),'wb')
            fp.write(part.get_payload(decode=True))
            fp.close()
        except Exception as e:
            print(e)
if __name__ == '__main__':
    file_name=r'F:\123.doc'
    parse(file_name)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MHT 文件转换为 Excel 可以采用以下步骤: 1. 使用 win32com 库将 MHT 文件打开为 InternetExplorer.Application 对象。 2. 使用 Beautiful Soup 库解析 MHT 文件中的 HTML。 3. 使用 pandas 库将数据导出为 Excel 文件。 以下是一个简单的示例代码,将本地 MHT 文件中的表格数据提取出来,并将其导出为 Excel 文件: ```python import win32com.client as win32 from bs4 import BeautifulSoup import pandas as pd # 创建 COM 对象 ie = win32.Dispatch("InternetExplorer.Application") # 打开 MHT 文件 ie.Navigate(r"C:\path\to\file.mht") # 等待网页加载完成 while ie.ReadyState != 4: pass # 解析 HTML soup = BeautifulSoup(ie.Document.body.innerHTML, 'html.parser') table = soup.find('table') # 提取表格数据 data = [] for row in table.find_all('tr'): cols = row.find_all('td') cols = [col.text.strip() for col in cols] data.append(cols) # 导出为 Excel 文件 df = pd.DataFrame(data) df.to_excel('output.xlsx', index=False, header=False) # 关闭 IE 对象 ie.Quit() ``` 在这个示例中,我们首先使用 win32com 库将 MHT 文件打开为 InternetExplorer.Application 对象。等待网页加载完成后,我们使用 Beautiful Soup 库解析 MHT 文件中的 HTML,并从中提取表格数据。最后,我们使用 pandas 库将数据导出为 Excel 文件。 请注意,使用该方法将 MHT 文件转换为 Excel 时,可能会丢失某些网页元素,例如 JavaScript 和 CSS 文件等。同时,在使用本地 MHT 文件时也需要遵守相关规定,避免触犯法律法规。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值