分类 Python 下的文章

Python:文件mht转成png或jpg等形式的图片


需求来源

今天三婶找我帮忙,说这个文件在网上找了好长时间都没有一个好用的转换工具或者网站。在chrome里浏览样式还有问题,图片也显示不出来,但是在ie里是没问题的。
本来想用selenium+chrome来截图出来处理,那就没办法了,决定放弃了,但是发现selenium里也有ie的工具,我靠,那不就解决问题了么,那直接上代码。

需要环境

  • python3
  • selenium
  • IEDriverServer

过程

第一步 安装selenium

pip install selenium

第二步 下载IE驱动

1.下载IEDriverServer 选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致,安装selenium时记录版本号即为了在此处对应。
2.解压缩得到IEDriverServer.exe,并将其添加到环境变量的目录下 ,即python.exe所在目录或者像我一样,撇到其他目录后期配置目录即可。(如:C:Python37)
3.针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。

第三步 上代码

import os
from selenium import webdriver
from selenium.common.exceptions import WebDriverException

source_path = 'e:/Desktop/新建文件夹/mhts/'
target_path = 'e:/Desktop/新建文件夹/result/'
# options = webdriver.IeOptions()
# options.add_argument('--headless')
# options.add_argument('--disable-gpu')
# options.add_argument('--no-sandbox')
# options.add_argument('window-size=1920x1080')
 
 
# driver = webdriver.Ie(executable_path=r"E:\Program Files\IEDriverServer.exe")
# driver.maximize_window()
# driver.get("e:/Desktop/新建文件夹/白春秀9月居家.mht")
# driver.get_screenshot_as_file(u'e:/Desktop/新建文件夹/白春秀9月居家.png')
# driver.quit()

files = os.listdir(source_path)
for fi in files:
    print("%s" % fi)
    driver = webdriver.Ie(executable_path=r"E:\Program Files\IEDriverServer.exe")
    driver.maximize_window()
    driver.get(source_path + fi)
    driver.get_screenshot_as_file(target_path + fi + ".jpg")
    driver.quit()

最后上张图片结束

微信图片编辑_20210312221916.jpg