WPF上でWinFormのWebBrowserコントロールを使用しています。
アクセスしたWEBサイトの、
現在画面に見えている文字列だけをコピーしたいのですが
どうすればよいでしょうか
・HTMLタグなどは一切不要です(むしろ含まれてほしくない)
・動的に追加/削除された文字列などは考慮しなくてOKです。あくまで、その時に表示されている文字列達。
・JavaScriptのソースたちも不要です。
・iFrameの中身も不要です。(含まれても含まれなくてもどちらでもOK)
人間の操作であればCtrl+A等で全選択してCopyすればよいのですが…。
※
document.getElementsByTagName("body")[0].InnerText(or InnerHtml)
で取得したものに対して正規表現でタグを取り除く方法では、
Display:none等に指定されている文字列が含まれてしまうのでNGでした。
それ以外については取り除けるのでOKなのですが…。
よろしくお願いします。
この方法でよいかわかりませんが、とりあえず目的の動作ができました。
ほかのやり方の回答が寄せられるかもしれないのでしばらく自己解決にはしないでおきます
C#
1WebBrowser1.Document.ExecCommand("Selectall", false, null) 2WebBrowser1.Document.ExecCommand("Copy", false, null); 3string text = (string)data.GetData(System.Windows.DataFormats.Text);
クリップボードを経由しますし、スマートとは言えませんが、とりあえずこれで目的の動作はできました。
たまにフリーズしたりするみたいなので、もう少し検証が必要かな、、、と思っております。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。