- - PR -
クライアントアプリでログイン後の情報取得
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-06 01:22
はじめましてjavadeと申します。
まだ、初心者の域を超えられていない未熟者です。 なので、何かを作って公開してみたいなと思っています。 早速なのですが、mixiとかのようなWebで、 ログインして表示される情報やデータを javaクライアントアプリで取得する方法が知りたいのですが、 本屋さんにもWeb上にもリソースが見つかりませんでした。 探し方が悪いことは承知していますが、なかなか見つかりません。 ミクチェ(mixiCheckTool)といったツールが実際そういった機能を 実現しているものですが、どうやらVBアプリのようですし、 実装面の解説はないので方法はわかりません。 どなたかわかる方、アドバイスをいただけたらと思います。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-02-06 02:59
特定のWEBアプリの専用クライアントを実装したいということですね。 WEBサービス等を用いたデータ取得用の専用インタフェースがない単なるWEBアプリに対するデータ処理は基本的には以下のような流れになると思います。 1.HTTPリクエスト送信 2.HTTPレスポンス受信 3.HTMLのパース処理 4.取得したデータの加工処理 4で必要なデータを好きなように加工するなりクライアント側のDBなりファイルに保存することになります。 1と2に関しては自前で実装するよりもJakartaのHTTPClient等を利用するほうがよいでしょう。HTMLのパース処理も探せば汎用のライブラリがあるかもしれません。 あとはGUIと4のビジネスロジックの実装を行えば完成ですね。 がんばって面白いアプリを作ってみてください。 [補足] ちょっと的を外した、というか幅の広い回答をしてしまいました。データの取得ということに関してのみであれば、HTTPレスポンスとして返されるHTML(厳密にはHTMLに限りませんが)のパース処理だけですね。 [/補足] [ メッセージ編集済み 編集者: moge 編集日時 2006-02-06 03:04 ] | ||||||||
|
投稿日時: 2006-02-07 01:00
mogeさん
適確な回答ありがとうございます。 Commons HTTPClientの存在は知っていましたが、 まさにこういった場面で使うっていうことは気がつきませんでした。 実は、書き込む前にjava.netパッケージでhtmlを取得する処理を書いてみたりしてた のですが、やはりそういった手順は踏む必要があるようですね。 HTTPレスポンスである以上仕方がないですね。 地道にHTMLパースライブラリも探してみて、いろいろと試してみようと思います。 こんなに早く回答が得られるとは思いませんでした。 ありがとうございました。
| ||||||||
|
投稿日時: 2006-02-07 04:13
これ↓なんか使ったことありますが結構良いです。
http://httpunit.sourceforge.net/ HTTPを使ってサーバに接続して、レスポンスをパースしてJava的なオブジェクトに変換してくれます。 | ||||||||
|
投稿日時: 2006-02-08 02:15
インギさん
はじめまして。 httpclientを使って、ログインしてhtml取得までできました。
httpunitはhtmlパーサの1つとして候補にあげているところでした。 jerichoとhttpunitのどっちかにしようと思っていたのですが、 ちょうどきっかけもできたのでhttpunitでやってみようと思います。 ただ、インギさんが書いているのを見ると、httpclientの代わりにもなるということでしょうか? ちょっと調べてみます。 | ||||||||
|
投稿日時: 2006-02-08 03:35
ざっとみた理解では HttpClient は HTTP のリクエストとレスポンスをシンプルに扱うためのインターフェースで、jericho は HTML をパースするエンジン、でしょうか?
HttpClient も jericho も残念ながらつかったことないのですが、HttpUnit は接続、HTML のパース、セッション(というかクッキー)の管理などしてくれます。 HttpClient と jericho のおいしいところをもってきた感じでしょうか。 Javaコードから複数のリクエスト/レスポンスをまたがるブラウザの挙動を簡単に表現できますのでお勧めです。 内部的にjtidyを使っていてレスポンスのhtmlがvalidでなくてもちゃんとパースしてくれるのも気に入ってます。 | ||||||||
|
投稿日時: 2006-02-09 01:49
これを見る限り、HttpUnitだけで実現できそうな感じですね。 やっぱり、調査の必要がありますね。 パースはXMLのパースみたいな感じでできればいいなぁと期待しているんですがね・・・ 今日はちょっと時間がなかったですが、少しずつ進めていこうと思います。 最後までできるかわかりませんが、自分のブログで公開できるものができるといいなと思います。 |
1