Webページのテキストの保存 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

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

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

これからは、掲示板に投稿するときに試した方法もちゃんと書くように気をつけます。
投稿者 るきお  (社会人) 投稿日時 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/24 21:48:51
Internet Explorerで、ファイルの種類を[テキストファイル]にして名前を付けて保存すると、Webページのテキストだけ(タグがつかない)が保存されます。
これをプログラムで実現したいのですが、方法はないでしょうか?

WebBrowserコントロールでできないか試してみましたが、ダイアログを出さないといけませんでした。