我可以打开一个网页,没问题。我可以保存网页...作为HTML,没问题。我需要将网页保存为mht所以我可以获取所有隐藏的html而不保存为mht。在研究中我完全没有提到如何使用python保存。就像我上面说的那样,我可以尝试将其保存为mht文件,使用标准编码保存为html,但这根本不起作用......并不惊讶它也不起作用,但它值得一试。< / p>
url = 'https://www.thewebsite.com'
html = urllib.request.urlopen(url).read()
m = open('websitetest.mht', 'w')
m.write(str(html))
m.close()
我正在尝试保存的网站会在保存为mht时遇到“隐藏代码”,但在保存为html时则不会。因此,为什么我要保存为mht所以我得到了所有代码,然后可以通过代码来完成编译数据库所需的内容。
答案 0 :(得分:0)
在Python 2.7中编写了一个非常方便的Github项目(您需要进行简单的修改以使其与Python 3.4兼容)。该项目包含打包/解包MHT文件的代码。我认为这就是你要找的东西:
答案 1 :(得分:0)
最近遇到同一问题, 我想将html页面转换为mht格式。
关注Tim Golden的Python知识,并能够使用win32com实现它。 http://timgolden.me.uk/python/win32_how_do_i/create-an-mhtml-archive.html
import win32com.client as win32
URL = r'C:\WorkSpace\chetan_index.html' # issues found 1> One while using local files, pass the path in url format like file://directory01/directory02/index.html with %20 formating for special characters
# 2> Also same to be followed for files reffered internally inside html file i.e. src="file://reference/directory01/smiley.png"
# 3> Rare issue, if alt tag is found with src, images are not embedded into mht coreectly, trying poping alt tag from web page and then call CreateMHTMLBody
message = win32.gencache.EnsureDispatch('CDO.Message')
message.CreateMHTMLBody(URL, 0) # 0 - suppress none , download all images and others
stream = win32.gencache.EnsureDispatch(message.GetStream())
stream.SaveToFile(r'C:\temp\saved_mht.mht', 2) # 2, for overwrite existing file, 1 for not to overwrite
stream.Close()