Webページのテキストの保存

タグの編集
投稿者 daiki  (中学生) 投稿日時 2011/4/24 21:48:51
Internet Explorerで、ファイルの種類を[テキストファイル]にして名前を付けて保存すると、Webページのテキストだけ(タグがつかない)が保存されます。
これをプログラムで実現したいのですが、方法はないでしょうか?

WebBrowserコントロールでできないか試してみましたが、ダイアログを出さないといけませんでした。
投稿者 るきお  (社会人) 投稿日時 2011/4/24 22:20:07
>WebBrowserコントロールでできないか試してみましたが、ダイアログを出さないといけませんでした。 
その試してみた方法を書いてください。

掲示板などインターネット上でのコミュニケーションはお互いに持っている情報を提供しあうものと考えてください。daikiさんの持っている情報が参考になって助かる人がきっといるはずです。
「こう書くとうまくいかない」という情報だったしても価値があります。

さて、今回ご質問の件は次のようにするとどうでしょうか?目的は達成できますか?
  
Private IsSaveFile As Boolean

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    IsSaveFile = True
    WebBrowser1.Navigate("http://www.nifty.com/")

End Sub
   
Private Sub WebBrowser1_DocumentCompleted(sender As System.Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    If IsSaveFile = False Then
        Return
    End If

    IsSaveFile = False

    Dim fileName As String = "C:\vb\web.txt"
    Dim contents As String = WebBrowser1.Document.Body.InnerText
    Dim encoding As System.Text.Encoding = System.Text.Encoding.GetEncoding(WebBrowser1.Document.Encoding)

    IO.File.WriteAllText(fileName, contents, encoding)

End Sub
投稿者 daiki  (中学生) 投稿日時 2011/4/25 22:48:58
るきおさん、ありがとうございます。
思っていたことができました!

試してみた方法ですが、WebBrowserのメンバの中に保存関連のものがないかと、"save"で調べたところ"ShowSaveAsDialog"メソッドというのが見つかりました。でも、説明を読むと「ダイアログボックスを表示します」と書いてあったので諦めました。
タグを検索して削除する、という方法も考えたのですが、凝ったページ(スタイルシートなどが使われている)だとうまくいきませんでした。

これからは、掲示板に投稿するときに試した方法もちゃんと書くように気をつけます。