掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ブラウザに表示されている内容をテキストファイルにしたい (ID:122352)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ブラウザで表示されているデータをテキストファイルにしたいのですが、 こんな感じかな……。 起動中のIEを列挙して、その中身を拾い出してみました。 手抜き実装なので、フレームを使ったページには対応させていません。 (個々のフレーム内の情報まで拾うと、サンプルの見通しが悪くなりますし) '-------------------------------------- Option Strict On Imports System.IO Imports System.Runtime.InteropServices Module Module1 Sub Main() '結果を出力するフォルダ Dim WorkFolder As String = "C:\TextFiles\" Directory.CreateDirectory(WorkFolder) '現在起動中の InternetExplorer を列挙する Dim Shell As Object = CreateObject("Shell.Application") Dim Windows As Object = CallByName(Shell, "Windows", CallType.Method) For I As Integer = 0 To CInt(CallByName(Windows, "Count", CallType.Get)) - 1 Dim Exp As Object = CallByName(Windows, "Item", CallType.Get, I) Dim Doc As Object = CallByName(Exp, "Document", CallType.Get) 'HTMLを表示している場合のみ処理する If Doc.GetType().Name Like "HTMLDocument*" Then '一時ファイルを生成 Dim FilePath As String = Path.GetTempFileName() Dim FS As New StreamWriter(FilePath) 'ファイルの先頭に、URLなどの情報を記録してみる FS.Write("URL:=") FS.WriteLine(CallByName(Exp, "LocationURL", CallType.Get)) FS.WriteLine("出力日時:=" & Now.ToString("yyyy/MM/dd HH:mm:ss.fffffff")) 'MSHTML経由でドキュメントの内容を取得 Dim Body As Object Try Body = CallByName(Doc, "body", CallType.Get) FS.Write(CallByName(Body, "innerText", CallType.Get)) Finally If Not IsNothing(Body) Then Marshal.ReleaseComObject(Body) End If Body = Nothing End Try FS.Close() '一時ファイルを移動 Dim FileName As String = Path.GetFileNameWithoutExtension(FilePath) File.Move(FilePath, Path.Combine(WorkFolder, FileName & ".txt")) End If Marshal.ReleaseComObject(Doc) Marshal.ReleaseComObject(Exp) Next Marshal.ReleaseComObject(Windows) 'フォルダを開く CallByName(Shell, "Open", CallType.Method, WorkFolder) Marshal.ReleaseComObject(Shell) End Sub End Module
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.