大昔にwgetを利用したWeb更新チェッカー作ってたんだけど、同じ事を今やろうとしたら大変なのを最近知った。
主に以下の理由なんだよね。
・Ajax使ってるところは素直にとれない。
小説家になろうサイトみたいに素直な構造ならいいけど、世の中そう単純ではないらしい。
これ対策として、以下を実際に試作してみた事がある。
★Windows上でミニマムなダウンローダを作り動作させる。
異種OSで再現に四苦八苦するより、こっちが楽で確実ですわな。
ただし全部Windowsで書くのも面倒なんで、大部分はUNIX likeですませましたんで、
Windowsなのにcygwin+Apacheがいるという妙にクリティカルなシロモノになりましたが ^^;;
1.概要
チェッカーのアクセス部にwebBrowserコンポーネントを使う。
これはIEの部品そのものなんで、あとはレジストリで「うちはIE10ナリ」と言い放ちながらアクセスさせたんですね。
それから、Ajaxなどの対策に、単にロード完了を待つだけでなく、しばらく待機して処理完了を待つ。
(ロード完了は単にダウンロード完了なので、各種プログラムの動作完了にはもう少しかかる。テキストの変更待ちをすればいいみたい)
このあたりは泥臭い処理になるけど、まぁブラウザ対応なんて昔から泥臭いもんですし。
で、あとはそのゲットしたものをあれこれ比較して履歴をとり、更新チェッカーに用いるわけですな。
全体の実装方法は色々あるんですが、制御はRubyでやりました。
これはRubyのユーザスレッドを使いたかったからですね。
Rubyも最近はネイティブスレッドがあるけど、環境問わず類似の結果が得られるユーザスレッドが僕は好きです。
んー、まじめにゼロから作り直そうかな。
でも需要ないよなぁ……。