tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルWEB内コントロールから文字列の取り出し方
記事No4782
投稿日: 2007/01/08(Mon) 13:46
投稿者Long
現在 VB2005 Express Edition を使用して Windows アプリケーションを作成しています。
(VB6 から乗り換え勉強中です)

やりたい事
業務用のWEBページからテキスト文字列を取り出して処理をおこないたい

HTML ソースに、その文字列が記載されていればいいのですがコントロール内に文字列があるためHTMLソースなどから抜き出すことができません。
Webbrowser コンポーネントを使用してみましたが、直URL では いったんログイン画面になりそこからたどろうとすると別ページを開く必要がある影響かスクリプトエラーが発生して目的のページへたどり着きません。

作成したいアプリケーションは30秒ごとに、目的のページに表示されている文字列を確認して処理を行うというものですが、条件がいくつかあります。
・クリップボード経由は業務でクリップボード拡張ソフトを使用している関係で使用できない。
・業務で使用する PC で動作させるのでブラウザーを起動させておくことはできますが、基本バックグラウンドで動作させる必要がある(取得するたびに画面がアクティブにならない など)

例としては以下のページからテキスト文字列を取得するような感じになります。
http://www.gaitame.com/Rate2win.html
(目的のページは Ctrl+A でテキストを選択することが可能です)

正直できそうなのか、まったく無理な話なのかも判断ができず困っています・・・。
ヒントになるページや解決の糸口になりそうな処理をご存知の方は教えてください。

よろしくお願いします。

[ツリー表示へ]
タイトルRe: WEB内コントロールから文字列の取り出し方
記事No4783
投稿日: 2007/01/08(Mon) 14:21
投稿者YAS
例のページはFlashが使われているので文字列をキャプチャするのは無理だと思います。
ただ,目的のページはテキストが選択可能とのことですので,Flashではないのだと思います。
例えばフレームのページなど,HTMLのソースからは直接文字列を取得できない場合でも
DOMからアクセスすれば取得可能な場合もあります。

結局のところ,WebBrowserコントロールからできるかできないかはそのページの構成によるので,
現時点の情報ではなんともいえません。

[ツリー表示へ]
タイトルRe^2: WEB内コントロールから文字列の取り出し方
記事No4784
投稿日: 2007/01/08(Mon) 16:18
投稿者Long
YASさんありがとうございます。

> 例のページはFlashが使われているので文字列をキャプチャするのは無理だと思います。
> ただ,目的のページはテキストが選択可能とのことですので,Flashではないのだと思います。

そうです独自のシステムのようで Flash ではありません。

> 例えばフレームのページなど,HTMLのソースからは直接文字列を取得できない場合でも
> DOMからアクセスすれば取得可能な場合もあります。
>
> 結局のところ,WebBrowserコントロールからできるかできないかはそのページの構成によるので,
> 現時点の情報ではなんともいえません。

そうですよね。業務ツールのため同じものが具体的に提示できないのが難点です。
ただ、YASさんの回答の内容から考える方向性を Webbrowser コントロールを
何とか使用して結果どうなるかを確認していきたいと思います。
Flash の場合は無理など、このあたりの方向性も見えていなかったので
ご回答いただき本当にありがたいです。

またお世話になることがあるかもしれませんが、よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: WEB内コントロールから文字列の取り出し方
記事No4785
投稿日: 2007/01/08(Mon) 17:46
投稿者YAS
WebBrowserコントロールに読み込んだHtmlDocumentをツリー形式で表示するサンプルを以前に
作ったことがあります。
よろしければ試していただき,DOMの解析の参考にしてください。
(コピー&ペーストで動作するはずです。NavigateメソッドのURLを変えてください。)

WebBrowserコントロールのDocumentオブジェクトのDOMツリーをTreeViewコントロールに表示する
http://homepage1.nifty.com/yasunari/VB/VB2005/DOMAnalyzer.htm

[ツリー表示へ]