2003-07-29(Tue) 23:30 - [長年日記]
_ Webからデータをぶっこぬけ
というわけで、1)Webの検索サービスにしかデータがない2)独自のログオンはあるわフレーム使いまくりだわですごく使いにくい。みるからに自動化しにくそう3)でもデータを早急にあつめなきゃなんない...
やむを得ずプログラムでなんとかしてみることにした。
_ webunit with test/unit
最初に実行したのがこれ。でも帰してくるHTMLがおかしかったり、assert_equalがなぜか使えなかったり、test/unitっていうかwebunitの使い方がいまいちわかんなかったりであきらめた。webunit使いこなせるようになりてー。
_ ASR with IE
次に試したのがこれ。IEをオブジェクトとして使う時のリファレンスがちゃんとしたのが見つからないがトライ&エラーでなんとかログインは突破した。ところがFRAMEの取り扱いがわからず断念。document.all で FRAMEとかtagが取れるのはわかったが、各フレーム内のHTMLにアクセスできなきゃいけないのに指定の仕方がわけわか。
_ webrick de Programable HTTP-Proxy
結果、こうなった。htproxy.rbをぱくってきて、responseを標準出力に吐き出す部分を減らしたりした。検索自体は手動になるけど、逆にサーバ管理者からも文句いわれないですむかも。自動じゃないし。
_ webrickのhttpproxyサーバでさらにhttpproxyにつなぎたい。
webrickでhttpproxyを書いたとき、その先にProxyがたってる場合って指定する方法あります?こんな感じ。
ブラウザ -> proxy by webrick -> proxyserver -> internet
_ よくわかんなかったのでこうした。
require 'webrick/webrick' ... module WEBrick class HTTPProxyServer def proxy_service <- site_ruby/1.6/webrick/httpproxy.rbからメソッドをコピー。 ... begin http = Net::HTTP.new(uri.host, uri.port, 'プロキシサーバIP', 'プロキシサーバport') ... end end end end ...
_ これでも動くのは動くけど...もっとスマートに解決できんもんか。もしかして新しいのならできるとか?それか別のメソッドがあるとか?
Ruby-1.8に添付のWEBrickでは、<br> :ProxyURI => URI::parse("http://user:pass@proxy.example.com")<br>と指定できます。バグを見付けるなら今!(ぉ