2009-06-15 9 views
0

Étant donné une URL spécifique, j'essaie de télécharger le contenu de cette URL sous la forme d'un fichier MHT. J'ai envisagé d'écrire un analyseur/robot, mais je pense qu'il doit y avoir un moyen plus rapide.Enregistrement de la page Web en tant que fichier MHTM

Je Fired Up Powershell:

$ie = new-object -com "InternetExplorer.Application" 
$ie.navigate("http://www.example.com") 
$ie.document.title # Just to verify the navigate worked 

À ce stade, je ne pouvais pas trouver un moyen d'appeler les commandes de menu, en particulier SaveAs.

Toute aide serait appréciée.

+0

Comme vous pouvez le voir http://msdn.microsoft. com/fr-fr/library/aa752084 (VS.85) .aspx il n'y a aucun moyen d'appeler SaveAs seulement les fonctions de navigation – jitter

Répondre

2

Avec VBScript

Pour les fichiers locaux

cscript yourscriptname.vbs file:/test.html test.mht 

Pour les fichiers distants

cscript yourscriptname.vbs http://www.test.com/test.html test.mht 

-

Const adSaveCreateNotExist = 1 
Const adSaveCreateOverWrite = 2 
Const adTypeBinary = 1 
Const adTypeText = 2 

Set args = WScript.Arguments 

if args.Count = 0 then 
WScript.Echo "Usage: [CScript | WScript] mht_converter.vbs <html file> <mht filename>" 
WScript.Quit 1 
end if 

Set objMessage = CreateObject("CDO.Message") 
objMessage.CreateMHTMLBody args.Item(0) 
SaveToFile objMessage, args.Item(1) 

Sub SaveToFile(Msg, Fn) 
Dim Strm, Dsk 
Set Strm = CreateObject("ADODB.Stream") 
Strm.Type = adTypeText 
Strm.Charset = "US-ASCII" 
Strm.Open 
Set Dsk = Msg.DataSource 
Dsk.SaveToObject Strm, "_Stream" 
Strm.SaveToFile Fn, adSaveCreateOverWrite 
End Sub 
Questions connexes