VBSを利用して指定したURLから情報を保存したいです。例えば、http://yahoo.co.jpの内容をローカルマシーンに読込んで保存する。できれば60分起きとかタイマー機能も。どうすればいいのかわからないので教えてください。おねがいします。
No.5ベストアンサー
- 回答日時:
' トップページの URL
sURL = "http://www.yahoo.co.jp/"
' ファイルを保存するフォルダ名
sSaveToFolder = "C:\\" ' "C:\\WINDOWS\\Temp\\" などなど
Set Ie = WScript.CreateObject("InternetExplorer.Application", "IE_")
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Dim aURLList
bComplete = False
' トップページの取得と保存
GetWebDocument sURL
sSrcHTML = Ie.Document.all.tags("HTML")(0).innerHTML
SaveToFile GetFileNameToSave(sSaveToFolder,sURL), sSrcHTML
' リンク先の URL をすべて取得して配列に保存
ReDim aURLList(Ie.Document.all.tags("A").length)
For i = 0 To Ie.Document.all.tags("A").length - 1
aURLList(i) = Ie.Document.all.tags("A")(i).href
Next
' リンク先の取得と保存
For Each sURLList In aURLList
If sURLList = "" Then
Exit For
End If
GetWebDocument sURLList
sSrcHTML = Ie.Document.all.tags("HTML")(0).innerHTML
SaveToFile GetFileNameToSave(sSaveToFolder, sURLList), sSrcHTML
Next
' 保存するファイル名は、フォルダ名+URL+拡張子(.html)
Function GetFileNameToSave(sFolderName, sFileName)
' ファイル名(もともとリンク先の URL)にある、不正な文字を除去
sFileName = Replace(sFileName, "http://", "")
sFileName = Replace(sFileName, "/", "_")
sFileName = Replace(sFileName, ":", "_")
sFileName = Replace(sFileName, "?", "_")
GetFileNameToSave = sFolderName & sFileName & ".html"
End Function
' テキストをファイルに保存する
Sub SaveToFile(sFileName, sHTMLSrc)
Set oTF = oFS.CreateTextFile(sFileName, True)
oTF.Write sHTMLSrc
oTF.Close
End Sub
' IE に訪問させる
Sub GetWebDocument(sURL)
bComplete = False
'指定したページを読み込む
Ie.Navigate sURL
Do 'ロードが完了するまで待つ
WScript.Sleep 100
Loop While bComplete = False
End Sub
Sub IE_DocumentComplete(pdisp,surl)
'ロード完了時に発生
bComplete = True
End Sub
Sub IE_OnQuit
Set Ie = Nothing
WScript.Quit
End Sub
この回答への補足
ありがとうございます。
もう一つ教えてほしいのですがディレクトリごとコピー
することは可能でしょうか?
例えば、http://www.ztv.ne.jp/mina/のようにhtml化に
保存しないでそのままゲットしたいです。
すいません教えてください。
No.7
- 回答日時:
> VBSがイマイチわかりにくいので参考URL
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/wshtop. …
の「VBスクリプト講座・基礎編」あたりから
参考URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/wshtop. …
No.4
- 回答日時:
For i = 0 To Ie.Document.all.tags("A").length - 1
MsgBox Ie.Document.all.tags("A")(i).href
Next
にて、その HTML に含まれる A タグのリンク先が
すべて得られます。それらに対し、また同様に読み込めば
いいだけです。
この回答への補足
MsgBoxでなくsHTMLSrcにデータいれる場合
setで宣言しなおさないといけないでしょうか?
Aタグのリンク先がすべて得られるのわかるのですが
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set oTF = oFS.CreateTextFile("C:\\yahoo.html",True)
oTF.Write sHTMLSrc
oTF.Close
をFor分で繰り返すした場合にすべて書く必要ありますか?
No.3
- 回答日時:
すみません。
抜けていました
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set oTF = oFS.CreateTextFile("C:\\yahoo.html",True)
oTF.Write sHTMLSrc
oTF.Close
この回答への補足
すいません。
もしリンク先(2階層)とかファイルを取得したい場合
何を書き加えればいいですか?
例えば、同ページ内リンククリックした先が見たいです。
よろしくおねがい致します。
No.2
- 回答日時:
> ファイルに保存ですがstrCopyFromで記述するのですか?
??strCopyFrom って何ですか???
-----
' sHTMLSrc を適当にファイルに保存したりして下さい。
Set oTF = Fs.CreateTextFile("C:\\yahoo.html",True)
oTF.Write sHTMLSrc
oTF.Close
にて、sHTMLSrc の中身が C:\yahoo.html に保存されます。
この回答への補足
すいません。イマイチFor i = 0 To Ie.Document.all.tags("A").length - 1
MsgBox Ie.Document.all.tags("A")(i).href
Next
でMsgBoxを保存に変える記述がわかりません。
教えてください。お願いいたします。
No.1
- 回答日時:
下記の内容を、wget.vbs というテキストファイルで保存して、ダブルクリックしてみてください。
www.yahoo.co.jp のソースが得られたら、あとは
URL を引数にとったり、得られたソースをファイルに保存したり、改造してみてください。
' ここから
' 読み込む Web ページの URL
sURL = "http://www.yahoo.co.jp/"
Set Ie = WScript.CreateObject("InternetExplorer.Application", "IE_")
'指定したページを読み込む
Ie.Navigate sURL
Do 'ロードが完了するまで待つ
WScript.Sleep 100
Loop While bComplete = False
' HTML タグの中身をすべて取得
sHTMLSrc = Ie.Document.all.tags("HTML")(0).innerHTML
MsgBox sHTMLSrc
' sHTMLSrc を適当にファイルに保存したりして下さい。
Sub IE_DocumentComplete(pdisp,surl)
'ロード完了時に発生
bComplete = True
End Sub
Sub IE_OnQuit
Set Ie = Nothing
WScript.Quit
End Sub
' ここまで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Gmail GMAILの保存容量の変更方法を教えて下さい 保存容量が91%使用されているので、、、、というワーニ 1 2023/04/30 09:46
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- 物理学 情報とは何か? 2 2023/05/07 12:42
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(地域情報・旅行・お出掛け) 【条件あり】おすすめ愛媛菓子土産の情報求む 近日中に愛媛に旅行に行きます。 職場へのお土産に悩んでい 4 2022/11/17 12:34
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- クレジットカード カードについて③ 4 2022/09/02 19:17
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptでのSaveAsについて
-
Excel VBAでほかのアプリケーシ...
-
読み取り専用ファイルを上書き...
-
SaveAsでバージョンを指定して...
-
VB.NETで画像を保存したい
-
VBAで、強制保存してブックを閉...
-
コマンドプロンプトでデスクト...
-
エクセルで「名前を付けて保存...
-
Excel VBAで作成したマクロをxl...
-
.NETアプリでパスワード等入力...
-
onedriveで同期解除をしたら、...
-
沢山のフォルダにあるファイル...
-
win10 ファイルを自由に移動配...
-
マイドキュメントのフォルダの...
-
共有しているファイルを削除し...
-
vlan internal allocation poli...
-
ファイルの保存をOnedriveのク...
-
TXTファイルを上書き保存する前...
-
USB内のフォルダが「ファイル」...
-
system32にある、膨大なDLL。...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
読み取り専用ファイルを上書き...
-
Excel VBAでほかのアプリケーシ...
-
Corel Digital Studioの動画をS...
-
コマンドプロンプトでデスクト...
-
Excel VBAで作成したマクロをxl...
-
エクセルで「名前を付けて保存...
-
ExcelVBAでデスクトップのPATH...
-
VBA メモ帳の上書き保存がしたい
-
VBAで、強制保存してブックを閉...
-
irvineを利用してVBAからダウン...
-
VBScriptでのSaveAsについて
-
webページの特定の部分だけ消し...
-
VBScriptで日本語が変です
-
Pivot table で集計されたデー...
-
AccessVBAでレポートをPDFで出力
-
vbaでIEの名前を付けて保存(A)...
-
エクセル:マクロ:保存時に連...
-
ファイルのダウンロード保存先...
-
htmlから取り込んだ を消...
-
印刷と保存の仕方をVBAマクロの...
おすすめ情報