WebBrowserコントロール使わないとHTMLDocument使えない! |
|
| HTTPRequestクラスとHTTPResponseクラスを使ってWEBサイトからHTMLを文字列形式で受信することはできたのですが、ここで問題発覚。HTMLの構造を解析するためにHTMLDocumentを使おうとしたら、このHTMLDocumentはWebBrowserコントロールと連携する形でしか使えないようです。つまり文字列を直接HTMLDocumentに変換して、HTMLDocumentのパーサを利用するというような方法が無いのです。XMLみたいにLoadXMLのようなメソッドがあればいいのですが、そういうものは存在しないようです。 いくらなんでも、他にHTMLパーサみたいなクラスぐらいあるだろ~と思って調べても、見つかりませんでした_| ̄|○。そういうクラスが存在しないということを確認するのに丸一日かかっちゃったよ_| ̄|○_| ̄|○_| ̄|○ でも何でHTMLDocumentよりも単純なHTMLパーサが無いの??? おかげで、自動売買をやってるブログで、axWebBrowserをスレッドではなくタイマーで制御していたり、わざわざ発注専用のアプリケーションを使って引数付きで起動して発注していたり、UWSCを使ってる理由がよくわかりました_| ̄|○。 私の現在の実装では売買シグナルが出る度に発注を別スレッドでやる予定だったので、これは厳しいです。でもaxWebBrowserはコントロールだから、あまりマルチスレッドには向かない感じです(無理というわけではないけど、ちと実装面で不安な部分がある)。 HTMLDocumentを使わないで独自にパーサを作ってやるか、それともaxWebBrowserコントロールを使ってアクセスするか…… 色々考えたのですが、結局HTMLDocumentを使わない方向で実装することになりそうです。多分GMOインターネット証券がそのうち発表するであろうAPIはWebAPIでXMLを返してくる形式のものなのではないかと思うので(勘)、HTMLを文字列化したものをパーサに通すという形をとった方が後々楽なのではないかと。 HTMLパーサは誰か他の人が作ったライブラリでもあるだろうと思って色々調べてみたのですが、残念ながらどれも実装面がいまいちな感じでした。きちんとHTMLを解釈してくれないとか、読み込みの段階でエラーが出ちゃったりとか。 ETWrapperはどうやってるんだろうと思って調べてみたら、どうもRubyを使っているようです。私はRubyとか使ったことがないし、VB.NETとの連携の仕方もわからないので、これについてはお手上げです。 自分でHTMLパーサを作るの、何か不安だなあ…… ∩∧_∧ l⌒) (´・ω・`)∩ 知らんがな!! \l⌒) , ノ \__ ノ 知らんがな! 知らんがな! ∩∧__∧∩ ∩∧∧∩ ∧∧ (´・ω・`)/ | (´・ω・`) / (´・ω・`) ヽ( ・ω)ノ∩/■\∩.∧___∧∩ (´・ω・`)l ( ) l( ω・ `)/
| |
|
7月16日(日) | トラックバック(0) | コメント(0) | 日記 | 管理
|
この記事へのコメント投稿はできない設定になっています |