1

昨年、ベルギーの鉄道会社の情報を破棄する Android アプリケーションを作成しました (アプリケーションは BETrains: http://www.cyrket.com/p/android/tof.cv.mpp/ ) 。

このアプリケーションは本当にクールで、ユーザーは電車の中で他の人と話すことができ (メッセージサーバーは私が運営しています)、その会話は Twitter でも行われました: http://twitter.com/betrains

ベルギーの誰もがそれを愛していました。会社は私たちが彼らのデータを使用するのを避けようとし、一部のユーザーのウェブサイトを閉鎖しましたが、一部の弁護士が会社を攻撃し、最終的に問題はなくなり、ウェブサイトは開いています: http://blog.tuinslak.org/2010 /07/irail-is-back

したがって、法的には、私の申請は (今のところ) 完全に正しく合法ですが、鉄道会社からは何の助けも得られません。

だから私の質問は、データを取得するための少しの助けです。私は現在、Android / Javaの初心者であり、解決策を見つけるために数週間を費やしていますが、おそらく数分で解決策を見つけられるでしょう.

ということで、問題は次です。次の URL を見ると、URL 内にモンスとトゥルネーの 2 つの都市名と、日時に関する情報が表示されます。これは、1 年間有効だった古い方法です。

http://hari.b-holding.be/Hafas/bin/query.exe/en?&REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=MONS%20[b]&REQ0JourneyStopsZ0A=1&REQ0JourneyStopsZ0G=TOURNAI%20[b]&REQ0JourneyDate=27.010.10&REQ0JourneyTime=19: 030&Timesel=depart&ViaName=&ViaMode=NEE&DateMode=ANDERS&PLANNER=TRUE&start=1&queryPageDisplayed=yes

しかし、URL によって確認ページが表示され、確認ボタンをクリックして次のページに移動する必要があります。

そのため、私のコードはもう機能しません。このボタンをプログラムでクリックして、正しい Web ページにアクセスする必要があります。

このボタンのクリックをシミュレートする方法について何か考えはありますか? 今のところ、私のコードは古典的なスクレイピング コードで、URL の先頭に数行を追加したものです。URL によって結果ページが表示されると想定しました。先週まではそうでした。

DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpGet get = new HttpGet(mon_url);
        HttpResponse response;
            try {
                  response = httpclient.execute(get);
                  HttpEntity entity = response.getEntity();        
                  BufferedReader buf = new BufferedReader(new InputStreamReader(entity.getContent()));
                 etc...

コードを改善する方法について何か考えはありますか?

ソフトウェアは無料なので、ペイパルの送金はできませんが、助けてくれる人には全国が本当に感謝しています!

どうもありがとうございます。

4

1 に答える 1

0

JavaScript ボタンのクリックを自動化しようとする代わりに、送信されたリクエストを監視してから、アプリでこれを複製してみてください。TamperDataFirebugLiveHttpなど、これを行うのに役立つさまざまな Firefox 拡張機能があります。

于 2011-04-11T23:47:26.003 に答える