かきくけこうもりのよろず投資日記(旧サイト)
 
このサイトは移転しました。サイト右側のリンクから、新しいブログに移動できます。
 


2006年7月20日を表示

結局自分で簡易HTMLパーサを作った

HTMLパーサを作らないで正規表現を駆使して証券会社のページを解析しようとしたら、意外と面倒なことに気付きました。証券会社のページをある程度詳しく解析しなければならないケースが結構あるようです。
例えばGMOインターネット証券のサイトでは、取引注文のページで注文内容を入力してSUBMITボタンを押すと、注文確認のページが表示され、そこでパスワードを入力してはじめて注文が発注できるようになっています。注文確認のページにはパスワードとSUBMITボタン以外に入力箇所は表示されていませんが、取引注文ページでの入力内容をサーバーに届けるためのhiddenのinput要素が記述されています。ですがこのhiddenなinput要素は、取引注文ページで入力したものとは微妙に異なっているようなので、実際に注文を発注するには、そのhiddenのinput要素をきちんと読まなければなりません。それを読み込むにはまずform要素がどこにあるかを知る必要があります。formにはclass属性やらaction属性やらmethod属性やら色々あるので、これだけでも正規表現で読み取るのはなかなか面倒です。
そんなわけで泣く泣くHTMLパーサを作っていたら意外とそれなりに役に立ちそうなのが出来ました。Japan_internet_com デベロッパー - Microsoft C#での HTML 構文解析の記事のおかげです(このままの実装だとタグの検索が面倒なので、タグの部分とその後ろのInnerTextをひとつずつオブジェクト化して実装しています)。この記事を読んでいなければ、無理にツリー構造にこだわってしまってドツボに嵌っていたと思います。
他人のHTMLパーサを探してる時間が本当に無駄でした……こんなことならもっと早く作っておけばよかった。ここ数日この件で行ったりきたりだったけど、ようやく先に進みそう。
       ∩
 いな    | | ./二つ   う
 いん    | | | |
 属と   ノ从ハ从    さ
 性聞   .リ ´∀`§
 かこ    X_@X     耳
 |え   U|_____|U
 |の    ∪ ∪
 ! !



7月20日(木) | トラックバック(0) | コメント(0) | 日記 | 管理


(1/1ページ)