WebBrowser コントロールがナビゲートするときにサイトのソースを保存する関数を作成しました。すべてのフレーム コンテンツが除外されるため、WebBrowser.DocumentText のみを保存することはできません。
私が今抱えている問題は、フレーム コンテンツにアクセスすることです。どのメソッド/プロパティにそれが含まれているかわかりません。
以下は単純な WebBrowser コントロールで動作し、単純saveWebsite(FilePath, WebBrowser1)
に DocumentCompleted イベントに配置されます。
私は VB.NET でこれを行いましたが、C# に精通しているため、C# ソリューションも優れています
Public Sub saveWebsite(ByVal sDirectory As String, ByVal oBrowser As WebBrowser)
File.WriteAllText(sDirectory & "index.htm", oBrowser.DocumentText)
'Now write a file for each frame - putting each file in its relative path'
For Each oFrame As HtmlWindow In oBrowser.Document.Window.Frames
oFI = New FileInfo(sDirectory & oBrowser.Url.MakeRelativeUri(oFrame.Url).ToString)
oFI.Directory.Create()
'ISSUE: This is the issue, unlike with oBrowser, there is no DocumentText property for oFrame.'
'ISSUE: Ive tried several things like Body.InnerText/Html, Body.OuterText/HTML, etc.'
File.WriteAllText(oFI.ToString, oFrame.WindowFrameElement.InnerText )
Next oFrame
End Sub