掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
hpサイトの情報をtxtで保存するには (ID:78242)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> textコントロールには"ページが表示されません…"等のエラー時の > メッセージが表示されました。 WebBrowserはページを「非同期」で表示します。 つまり、NavigateメソッドやNavigate2メソッドでページに移動しても、 それが表示されきらないうちに、次の行が実行されてしまう可能性が あるというわけです。 Navigate系メソッドの完了は NavigateComplete系イベント、そして 文書の読み込み完了はDocumentCompleteイベントの発生によって 判定できます。まずは、これらを利用してみてください。 もし、何らかの理由でイベントを使う事ができないようであれば、 とりあえずは、「WebBrowser.Busy が False になり、かつ、 WebBrowser.Document.readystate が complete になる」まで、 DoEventsを挟んだループ処理で待機させるという方法でも、 判定する事が可能だと思います。 なお、ページを保存するに当たっては、 ・フレーム(FRAME)やインラインフレーム(IFRAME)を利用したページ ・スクリプトやクッキーなどの利用によって、内容が変化するページ などの扱いに注意して下さい。 (そうしたページは扱わない、というのであれば良いのですが) フレームを使ったページの場合、フレームによって呼ばれる 別ページの内容を、再帰的に取得していく必要があります。 また、スクリプトが使われているページなどでは、単純に HTMLソースを(Inet, ServerXMLHTTP, VB.UserControlなど)で ダウンロードしただけでは、スクリプト実行前のテキスト情報しか 取得出来ませんので、実質、InternetExplorerオブジェクトもしくは WebBrowserコントロールに頼る事になるでしょう。 # スタイルシートでdisplay:noneなどが指定されたエレメントが # 出現した場合の処理なども必要ですから、厳密に作りこもうとすると # 結構、面倒な事になるかと思います。ある程度の妥協は必要かも。 > (たまたま表示できている<を見つけて消してしまったというのは、HTMLの作者が悪いのです、 そうとは言い切れないのでは無いでしょうか。 テキストデータは、#PCDATAな領域だけではなく、CDATAな領域に 出現する可能性もありますから。。。CDATA部であれば、"<"が 実態参照なしで出現しても、文法的には問題無いような気がします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.