• ベストアンサー

VBSでWebpageを一気に取得する方法を教えて下さい。

http://abc.com/def/ghi001.htmlからhttp://abc.com/def/ghi150.html までの約150ページを.mht形式で一気に保存したいです。 ご存知の方宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

#ここでは、URL文字列に勝手にリンクが設置され、コーディング内に「?」が入ってしまいますので、「http」は「ht" & "tp」にしてあります。 #コピペの後「http」に変えてください。 >VBSでWebpageを一気に取得 とのことですが、Excel VBA でしたら、 ●EXCEL VBAでWEBページ保存2 http://okwave.jp/qa4253824.html の KenKen_SP さんの [回答番号:No.3] にある >■案2. MHT ファイルでも良ければ...な方法(Windows2000以降限定) でほぼ可能のようです。 '------------------------------------------------------------------- Sub SaveMHT()  Const cdoSuppressNone As Long = 0  Const adSaveCreateOverWrite As Long = 2  Dim i As Integer  Dim url As String  Dim outFilename As String  Dim msg As Object ' // CDO.Message  Dim stm As Object ' // ADODB.Stream  Set msg = CreateObject("CDO.Message")  For i = 1 To 150   url = "ht" & "tp://abc.com/def/ghi" & Format(i, "000") & ".html" '保存先フォルダ・ファイル名の指定   outFilename = "D:\hoge\ghi" & Format(i, "000") & ".mht"   msg.CreateMHTMLBody url, cdoSuppressNone, "", ""   Set stm = msg.GetStream   stm.SaveToFile outFilename, adSaveCreateOverWrite  Next  stm.Close  Set stm = Nothing  Set msg = Nothing End Sub '-------------------------------------------------------------------  これを WSH に翻訳してみましたら、こんな感じでしょうか?  不要なステートメントがありましたら、適当に調節なさってみてください。 SaveMHT.vbs '------------------------------------------------------------------- Option Explicit Const cdoSuppressNone = 0 Const adSaveCreateOverWrite = 2 Dim i, url Dim outFilename Dim msg Dim stm Set msg = wscript.CreateObject("CDO.Message") For i = 1 To 150 url = "ht" & "tp://abc.com/def/ghi" & Right("000" & i, 3) & ".html" '保存先フォルダ・ファイル名の指定 outFilename = "D:\hoge\ghi" & Right("000" & i, 3) & ".mht" msg.CreateMHTMLBody url, cdoSuppressNone, "", "" Set stm = msg.GetStream stm.SaveToFile outFilename, adSaveCreateOverWrite Next stm.Close Set stm = Nothing Set msg = Nothing

askinsong
質問者

お礼

出来ました!本当にありがとうございます!

関連するQ&A

専門家に質問してみよう